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.
This case is only hit if type inference fails to infer a value -- i.e. if no information on the type of the expression can be obtained from the query itself. That said, I would like to allow user-specified types, I just didn't add it in this PR since it's not really necessary for the SlamData front-end. I'll add a ticket to "enhance variables with support for user-defined types".