use explicit conversion for deckTemplates
better hash, better equals, assertions

- rewrite hash method to use boost::hashCombine
- rewrite equals method to use equality operator on deckTemplates
- add some assertions in destructor to check hash properties. disabled by default