Add models for cloud orchestration

This PR is split from original PR #333  (to be discarded). It focus only on the models for orchestrations. 
The master PR #523 covers the design and progress of the support for orchestration including AWS CloudFormation and OpenStack Heat.
![orchestration](https://cloud.githubusercontent.com/assets/7047579/4719534/6144c4e0-592a-11e4-9dc1-7d882f00f947.png)

Can be simplified to

```ruby
existing_templates[md5] || create(hash)
```

On that note, after the create, shouldn't it be added to the existing templates?  That way if two templates with the same md5 come through in the same run (could happen if two stacks are launched with the same template), the first one will create the entry, and the second one should reuse it.