Coloring Algorithms for Graphs and Hypergraphs with Forbidden Substructures