Do not allow memoization methods with nonzero arity

This makes sure the memoizer is not used to create tricky to track down
bugs.
Use better exception message for zero arity assertion
Fix 1.8 mode

Dunno how we will kill the mutation under 1.9 as soon mutant is able to
mutate adamantium.
Prefer if over unless
Merge pull request #10 from mbj/assert-memoize-zero-arity-methods

Do not allow memoization methods with nonzero arity