Better arity error messages

This adds better error messages to the arity exceptions that are
raised when stubbing a method or calling it with the wrong arity.
This should help with identifying the issue and what needs to be
addressed. The message now clearly explains the method that was
called/stubbed with the wrong arity, how many args it expected
and how many it got.
Merge pull request #206 from redding/jcr-better-arity-errors

Better arity error messages
Store stub ivars on `Assert` not on the object being stubbed

This changes to storing `Stub` instances on `Assert` instead of
the object that is being stubbed. This avoids cluttering the
objects inspect which, by default, display all ivars for an object.
It also avoids the `Stub` having to store the object it is
stubbing so it can remove the instance variable. Since the names
of the ivars are already object-method specific, they can all
be stored on `Assert` without any issues. This also doesn't
require using the `Assert.stub` interface and will work without
issue when using `Stub` alone.