Rewrite our Equals implementations so they don't crash when comparing incompatible objects
Merge pull request #4130 from ScottNZ/lua-wip

Rewrite our Equals implementations