hash_equals raises a warning on wrong types

Summary: Also moved all good tests

Closes #3477
Closes https://github.com/facebook/hhvm/pull/3479

Reviewed By: @fredemmott

Differential Revision: D1500295