Detemplitifying port implementation/examples

- The templates appear to have made things a bit more complicated than
  necessary
- This replaces some of the somewhat excessive template use with macros
- This eliminates metaclasses for the port hierarchy