add type erasure and emtypen generator

Emtypen generates boiler plate for type erasure code. Takes interface
archetype as input. Copied and modified from https://github.com/tzlaine/type_erasure.
Added support to emtypen for merging type specs taken from here:
http://aherrmann.github.io/programming/2014/10/19/type-erasure-with-merged-concepts/