add some compile time checks that various types implement various interfaces, add NameExecMap & NamedQueryMap to Tx, fixes #28