Allow returning a different object from init methods
Fix ugly indentation
Fix the behavior of augment, add specs

The previous code, while elegant (being the inverse of around()), did
not work when augmenting previously-augmented methods. The result of
doing so was that the outermost method would receive *all* of the
previous inner methods in its arguments array. That behavior is not
analogous to around().
More specs for augment
Add spec for 3668d00
Use skipInit sentinel during class instantiation
Bump version to 0.4.0