Fixed data extraction problems

This PR adds the following things:
- Monitoring: EC2Connection.ensure_instance_health() is called every time monitor.py finishes its outer while loop, and makes sure that none of the tagged instances are impaired. If any do happen to be impaired, it will restart the affected instances. Note that I didn't know how to impair an instance purposely, so while the code should work, it hasn't been tested.
- Data extraction no longer relies on statically-defined AMIs running services upon launch, but the monitor launches an image from the dstk_general AMI with a user_data script that checks out a specified branch of the data-science-toolkit repo.