Full rewrite of routing code

- Routes are now compiled as regular expressions 
- *routes* is now a vector of
  [compiled-route action-fn route-source]
- Route globbing both named and unnamed is now
  supported
- Params which appear multiple times are stored
  with as vector in the param map
- Encoded routes are properly decoded and matched
- Route renderer has been updated to interpolate
  values following the same rules as the compiler

Closes #6
Use defroute instead of add-route! in tests
Check if route satisfies IRouteMatches in add-route!
Add IRenderRoute protocol

Implement IRouteMatches for string and regexp.

Implement IRenderRoute for string.

Automatically compile strings with add-route!

Add render-route* which tries render-route if possible
and returns nil otherwise. This function is meant
for internal use only by defroute.
Support vector params, add helpful error message
Document route compilation
Reorganize tests, add tests for regex routes
Use clojurescript.test 0.2.3-SNAPSHOT

Use lein run-tests instead of lein cljsbuild test.

Auto testing achieved with lein auto-test.
Write a full README
Handle keywords when encoding query-params
Ensure query-params are extracted in to regex route params
README tweaks
Add History example

Closes #5
Another README tweak
Small formatting fix
Merge pull request #10 from gf3/route-compiler

Full rewrite of routing code