Add CloudFormation support via Troposphere

This changeset adds support for Amazon Web Services CloudFormation via [Troposphere](https://github.com/cloudtools/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 private subnets, but are fronted by their own ELB.

Additional AWS deployment details are housed in the `README`.

Resolves #24.