jQuery core methods are broken by Angular monkey-patching

Angular's current way of monkey-patching jQuery core methods expects the `$.fn.html` method to always act as a setter whereas a common usage is to get elements contents via `elem.html()` and currently Angular monkey-patches it to act in the same way as `elem.html('')` which breaks a lot of simple code...
http://api.jquery.com/html/

Another issue is that the `$.fn.remove` function accepts a selector as an optional parameter and removes only the elements matching it whereas Angular thinks this method always removes everything.

This patch solves both those issues and adds unit tests for that cases. All current unit tests are passed by Chrome, Chrome Canary, Firefox & Opera and tests written by me are broken on current master.

I'd be grateful to merge it rather quickly. :)