Added IAM support and refactoring

- Added validations to resource
- Added helper method to resource to create hosts with trailing dots
- Changed the create actions logic a bit
Dry'ed up the logging and use later fog dns get method

- zone.records.all will only return ~100 records
- zone.records.all! will return all
- zone.records.get does the right thing and will search through all
records
Merge pull request #1 from ZestFinance/feature/enable_iam_authentication

Added IAM support and refactoring