datasource: Move datasources into their own packages.
timeouts: Use After() instead of Tick()
metadata: Refactor metadata service into ec2 metadata

Added more testing.
Merge pull request #194 from crawford/metadata

datasource: Refactoring datasources