Fix around$ and augment$, change method modifier API

 * Fix issue when augmented methods are chained implicitly

   If an augmented method is called, and then something later up the
   stack calls another augmented method, the second augment doesn't
   correctly shift its inner function into the arguments array;
   instead, it replaces the first argument unconditionally, because the
   augmenting flag is set to true. This behavior is incorrect.

   The augmenting flag is removed, and we now explicitly mark inner
   functions so that we can properly detect when they need to be
   shifted. More specs are added to cover the various behaviors.

 * Fix cases where original context of around$ of augment$ is lost

   The context can be overwritten if the exact same method is called
   somewhere up the stack. This is fixed by always wrapping the supr or
   inner method.

 * Change the method modifier API

   The callback for method modifiers now receives the owner, name, and
   new method in that order. It no longer recieves the original method,
   because it's easy enough to get it or create a custom delegate,
   whereas having the owner is often more useful.
Remove static$

It's kind of useless.
Update Jasmine to 2.0.0
Expose methodOrDelegate
Update README.md
Allow method modifiers to return values other than functions
Small spec cleanups
Bump version to 0.5.0