Implement function calls, and use this to move builtins to the global environment

This includes adding macros (user-definable via `(macro (args*) body)`), and
quasiquotation.

Minor changes:

- Rusp::empty() creates a completely empty environment, Rusp::new() creates
  one with the default globals, and Rusp::new_with_otuer() creates an empty
  one with a parent scope.
- Some useful functions like `print`.
- Makefile and .gitignore adjustments
- The parser consistently returns Result<Value, ..> (rather than sometimes
  returning Result<~Value, ..>)
Usability improvements to the repl, don't print () or the AST.

Also, don't save empty lines.
Use @ everywhere to avoid cloning the AST
Parse multiple symbols from a source string.

i.e. don't ignore the "(b)" in "(a) (b)".
Fix tests after the parse change
Merge pull request #5 from huonw/eval-macros

Apply, macros, @ boxes, nicer repl