initial commit
devops: make a package, add management and configuration stubs
utils: add two external utilities: bunch and path.py

Adding them inline for some small modifications and because they're too
small to justify the `pip install` time overhead.
devops: enrich configuration elements, add SERVER_NAME
devops: add CDN support

This commit adds a function called config.cdn.proxied(). You can pass
any URL (absolute or relative) to proxied(), and it will look up an
internal table of reverse-proxies (typically CDN endpoints) and see if
this URL is covered by one.

If the URL has a CDN endpoint, proxied() returns the CDN URL. If it
doesn't, it just returns the same string as before.

Relative URLs with no netloc are considered to be relative to SERVER_URL
as set in the configuration.

The table of CDN endpoints can be generated and cached by running
config.cdn.get_cache(). At the time of this writing, get_cache() will
return an empty if AWS credentials aren't found in the configuration,
and a set of CloudFront distributions endpoints visible by these AWS
credentials otherwise. Having two distributions with the same origin URL
leads to undefined results.
assets: add backend support for asset management
frontend: use assets in index (scss, coffee, jst)
utils: add INTERACT

Often when coding/debugging you'd like to have a shell at a certain
point in your code. A common Python idiom for that is:

    from code import interact
    interact(local=locals())

This commit adds a function called utils.pyutils.interact, which looks
into the stack and fetches the local scope of its caller, then runs
an IPython (if available) or Python shell with this local scope.

Also, this function is patched into __builtins__ under the name
INTERACT. So anywhere in your code, you can just call INTERACT() and get
a nifty shell with the relevant locals.
models: add flask-sqlalchemy integration
backend/api: integrate flask-restful
backend/api: patch flask-restful for better serialization and error handling

See the code comments for references to github pull requests/issues
explaining the rationale behind these patches.
utils: add @parse_with flask-restful utility
backend/api: add database resource baseclasses
backend/api: expose users via api
backend/log: add detailed request logging

Every request is logged when the request is received and when the
response is sent. A uuid is generated and added to each request, and
will accompany any log line generated in the context of this request.
backend/auth: add backend authentication support
backend/assets: hookup asset management script command
devops: add support for postgres databases
devops: make project Heroku deployable with gunicorn/gevent
devops: add some deployment/provisioning fixes

 - fix project root detection from runcommands.sh
 - add the sandalstrap project bootstrapper as sandalstrap.sh
 - explicitly check for CoffeeScript and JRE
 - remove readline from requirements
    Shouldn't be there in the first place, it's just a sad artifact of
    development on OSX.