allow for custom templates from blueprint annotation

Allow custom templates via the blueprint annotation, example:

    @Blueprint(value=Wheel.class, template=CustomTemplate.class)


Should help with #25 to support constructor based models