Unify database configuration

This commit standardizes on PostGIS for all environments and moves the
database configuration into base.py, making use of the fact that we can
use environment variables to change connection information rather than
maintaining separate configuration files.
Set up CRLF handling for Windows clients
Create Django apps with models, URLs, and view stubs

* Keep `core` app small (with no UI, and just the ubiquitous User and Group models)
* Create topic-specific apps for handling groups of models and the URLs that service them
* Name all URLs (usually the view name)
* Use a `urls` module where an app handles URLs with more than one prefix
* Create view stubs for all URLs and import where referenced
* Create stubs for decorators and import where referenced
* Add apps to `settings.LOCAL_APPS`
* Distribute all models from `doc/draft-models.py` and all URLs from `doc/draft-urls.py`

Note that it all loads in our `app` VM using this command:
     envdir /etc/nyc-trees.d/env ./manage.py shell
Include Pillow in Django requirements
Silence warning about test runner

It generates false positives and is being removed (https://code.djangoproject.com/ticket/23469)
Merge pull request #43 from RickMohr/make-apps-and-urls

Create Django apps with models, URLs, and view stubs
Merge pull request #44 from jwalgran/topic/unify-db-config

Unify database configuration
Add missing import to settings/base.py

In 791faa94 I moved the database config to base.py but did not import
the required ``environ`` function.
Merge pull request #50 from jwalgran/fix/add-missing-settings-import

Add missing import to settings/base.py
Add CloudFormation support via Troposphere

This changeset adds support for Amazon Web Services CloudFormation via
Troposphere, a Python library for describing CloudFormation stacks.

There are currently 4 stacks:

- VPC

The VPC consists of 4 subnets, 2 public and 2 private. The subnets are
spread across 2 availability zones. There is a NAT instance for each
availability zone, and one bastion instance for the entire VPC.

- Data store (contains database and cache)

The data stores consist of a PostgreSQL RDS instance setup across
multiple availability zones and a Redis ElastiCache instance. The RDS
instance creates a default database (`nyc_trees`) automatically. The
ElastiCache Redis instance has AOF enabled. Both live inside the private
subnets.

- App servers

The application servers live within a vanilla Auto Scaling Group (ASG)
that is associated with an Elastic Load Balancer (ELB). Health checks
run by the ELB trigger changes in the ASG. All application servers live
inside the private subnets, but are fronted by their own ELB.

- Tile servers

The tile servers live within a vanilla Auto Scaling Group (ASG) that is
associated with an Elastic Load Balancer (ELB) as well. Health checks
run by the ELB trigger changes in the ASG. All tile servers live inside
the public private, but are fronted by their own ELB.

Additional AWS deployment details are housed in the `README`.

Resolves #24.