fix bad decorator call (print_timing) by using *args and **kwargs
Merge pull request #102 from hrbonz/print_timing_decorator

fix bad decorator call (print_timing) by using *args and **kwargs
Break out about half of __init__.py.
Move pure-Python scanner/parser to their own module.
Expand .gitignore.
Evict list of colors.
Super simple py.test-based tests.
Port doctests to py.test.
Break functions out of global state and into an object.
Tidy up importing code; allow custom search paths without munging a global.
debuging => debugging
Whoops; fix logic inversion.
Add a registration API to the function registry, finally.
Hoist some vars to unbreak an error message.
Chump fix for the return of the // problem.
Add a bunch of early returns, to cut down the indentation.
Few more early returns and dedents.
Whoops; list.get() is nonsense.
Add FunctionRegistry.derive().
Avoid caching expressions containing functions; they may be nondeterministic.