Add hashCode/equals methods to the DDL trait

For instance the ``play-slick`` generates a Set of DDLs, which obviously require a hashCode() method to be defined.

https://github.com/playframework/play-slick/blob/master/code/src/main/scala/play/api/db/slick/ddl/TableScanner.scala#L156
This doesn't work. Array.hashCode is the identity hashCode, it does not depend on the array contents