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.
We're consistently using lower case for keywords (except for `CROSS JOIN`, I just noticed).