Make the new template validation usable from tests

This is so we can assert that new TemplateResources expose the
api that we are expecting.

Partial-Bug: #1215797
Change-Id: I6273f6e046bb7bd5e075e9190d8011af976573b8
Make global TemplateResources usable in the tests

At the moment we need the templates installed into /etc/heat/templates
and this is not very nice for the tests. So this patch
replaces "/etc/heat/templates" with the project's own template
path so we can at least test the api of the template resources.

Partial-Bug: #1215797
Change-Id: Ie4924b0358b97af8feaad93ed9187976b8932e3d
Move dbinstance into a TemplateResource

The old dbinstance will soon be overtaken by the trove resource.
- The only reason for keeping this around is for people that don't
  have trove installed and want to use the AWS resource.
- Seperating it out into a TemplateResource really makes it easier
  for deployers and users to customise it.
- The old dbinstance did nothing "special" in python, and was really
  one of the first "TemplateResources" as it attempted to convert properties
  into parameters. Since this in now done a lot better in the TemplateResource
  lets just make use of that.

This will make it easier to migrate to other distros and versions.

Partial-Bug: #1215797
Change-Id: If72e1f40f67dc831551e0db8df8caaa002aaaeda