Add Object.Equals tests for boxed primitive types

This was supposed to showcase an issue with I1/I2 comparisons (which was fixed some time ago). Instead it shows a problem with boxing - virtual methods called from boxed value types work incorrectly because they expect a "self" pointer to a valuetype layout but they get a reference type layout with some extra fields prepended to the expected layout. So basically method table should point to some sort of thunks to fixup the pointer before passing control to actual methods; I don't know how to do that so here are just the tests to highlight this issue.