Make all reports consistently state the expected behavior first.

Note that this PR also includes a slight refactor to how the object type expectation logic by @icambridge works.  This allowed me to make a consistent message whether or not the context is a primitive. I guess I don't really see the difference between the context being a primitive or an object... the types are not consistent in either case.

There was also a very slight refactor in checking for equality.

Please note that I am not the best at writing, so if you think any of the words I used should be changed, please make some inline comments.