Add user-defined hash function capability
Change hashFunction from Seq[Any] to Array[Any]

Better compatability with Java, as well as directly uses
Java arrays for potentially better performance
Add testing for custom hashFunction use
Add NoCompareTo versions of equal methods. Add ScalaEqualsExtend object for those methods.

ScalaEqualsExtend is intended to be an object for macros that are "use at your own risk",
i.e. there is no guarantee that the equals/hashCode methods generated will be correct,
because, for example, not using compareTo with floats/doubles will make the result
inconsistent with equals/hashCode.
Copy method equal(param, params...) to ScalaEqualsExtend and deprecate version in ScalaEquals
Move custom hash function macro to ScalaEqualsExtend. Add removal version for ScalaEquals.equal(param, params...)
Remove product macros in favor of keeping the library as lean as possible

The product macros did not add significant value to the library as compared
to the core equals/hashCode/canEqual/toString macros, because as def macros
they really weren't that useful as compared to just using a case class.
Look to see a type/annotation macro library using 2.11-SNAPSHOT if you wanted
product macros