Fix test name.
Add tricky cases to test class:
 - nullable primitives
 - non-nullable custom structs
 - nullable structs
Write method to determine whether it's safe to use the equality operator, considerting nullability too.
We need to use exact binding to get the right Equals method,
otherwise for valuetypes this resolves to object.Equals(object) even though we provided a struct.
Use more complicated, realistic type with nullability and an enum.
This so we benchmark the nastier cases in the code-gen path too.

--HG--
extra : amend_source : de90a164e5f14ef120f9c156dbab2ea83b7422e1
Bump version; add changelog
Added tag 1.2 for changeset 5f0eb8f300be