Basic stub system tests, instance and singleton methods

This adds some basic system tests for stubbing instance methods,
class singleton methods and a module singleton methods. The goal
is to throughly test assert's stubbing in the same way it would be
used in a separate test suite and to find any strange issues that
can come from mixing stubs or using them in strange scenarios.
These include edge cases and error cases that ensure assert's
stubbing tries to alert the users to possible issues as much as
possible.
Merge pull request #200 from redding/jcr-system-tests

Basic stub system tests, instance and singleton methods
Add readable inspect to `Stub`

This adds a readable inspect to `Stub` to help with cleaner
output. Since asserts stubbing now writes instance variables, the
default inspect for objects will show the stubs that have been
written to an object. This would inspect the instances of `Stub`
on the object which would show all of its instance variables. The
output of this was noisy and difficult to read. This cleans up
the output and makes it simpler to read.