Added template combination functionality

Adds the domain model for representing the Heat and Tuskar objects, as
well as the functions needed to add/remove templates from a deployment
plan and generate the corresponding HOT templates for the plan. This
code is only focused on dealing with the contents of the Heat
templates; the storage and retrieval of them are going to be handled in
a different layer of Tuskar.

Change-Id: Ibef2858e62aeec83f2cb0b7a9ac64cbed89f2484
Implements: blueprint tripleo-juno-tuskar-plan-rest-api