Issue 229

I think this is a big step forward, but there are still a couple problems:

- The allowable types checking might be too strict. E.g., if a user queries "string_column includes 5" it will throw an error (because includes is used for strings, not numbers) even though there might be legitimate cases where a user would like to find samples where a string column includes the number 5
- If a column is referenced as both a numerical and a string column, it will error (e.g., "ph < 5 or ph = None")

However, I think this can be merged for the demo, since it will make demonstrating complex queries much cooler (for example, I can now run the query ```ph > 3 and ph < 4.0 or study_title includes soil```; note that ```and``` takes precedence over ```or```)
I can understand the change here to make it consistent with the above, but it is still joining self.term at the end of this function. Is this split needed or would just a comment suffice?