Prefer an object over a hash, whenever the keys are significant

In general, any time you're working with a hash that has specific keys
(e.g. accessed with a literal), you've likely got an object wanting to
get out, even if it's just a struct with no other methods. The biggest
upside is more meaningful errors if you have a typo, since the default
behavior of a hash is to return nil. Cases where you don't care about
specific keys (e.g. using a hash to memoize a single argument method)
are fine.
@pbrisbin You said something before which just now caught my eye:

> So, if we can't add something additional or more specific than "Avoid X smell", I don't think it should be a guideline; otherwise, I might feel compelled to add a guideline for every smell in the c2 wiki.

Well... how many smells are there in the c2 wiki? Why not add a smell if it's a good idea?