Add support for variables in SQL queries (#177)

Fixes #177:

1. Added variable to SQL grammar (:foo), along with tests; discovered boolean literal was missing and added it.
2. Support variable through all of semantic phases, but not in the logical plan compiler.
3. Add method to substitute variables based on type inference with fallback to "string inference" (generalized mapUp and other enhancements).
4. Revamped regression test to support variables, and added new regression test to verify variables work.
5. Added variable support to REPL.
6. Extracted out planner logic from backend and moved into planner.
7. Changed front-end query API to expect `Destination` header and use query parameters as query variables
8. Updated README to reflect new API changes.
Good point. One of the reasons I want to defer it is because there is no literal for date / date time / time / interval, so most databases support strings or require conversion functions. 

For strings and numbers, SQL literal notation can work, but I don't want to choose something that just works for the common data types -- it should work for all data types.