Gap labeling theorems for Schrodinger operators