Implement protocol templates
Following beat.core#64 this issue tracks the implementation here for the support of the ProtocolTemplate object which will represent a database template.
The end goal is to make protocol template re-usable objects to avoid duplication and therefore potential errors in the database definitions.