Restore global methods properly, fixes #94

When useFakeTimers() is called, stubGlobal() will assign "hadOwnProperty"
to the stubbed method, which is set to true if the global object had the
direct property of the method.

Then, when restore() is called, instead of setting global[method] back,
it will check the "hadOwnProperty" var -- and if false -- will delete
global[method], deferring said method back into the prototype chain
Merge pull request #97 from KonradHolowinski/master

Fixes a problem with sandboxes not restoring stubs when a whole object was stubbed
Comment out "should delete global property" test for now, as per #96
Added new sinon.match.any, same, typeOf, instanceOf, re and like functions. The result of a call can be used with spy.calledWith.
Made setTimeout and setInterval pass args
Refactored implementation according to feedback from Christian to use a functional approach instead of the Matcher constructor.
Changed any from function to property. Added typeOf shortcuts for boolean, number, string, object, function, array, regexp and date.
spy.returned now works with matchers and compares objects deeply.
Merge pull request #100 from roddik/master

Fixed setTimeout and setInterval parameters
Merge pull request #103 from mantoni/master

Support for fuzzy argument matching
Added a section on how to run the tests.
Readme: added how to run tests on Node
sinon.match.has and sinon.match.hasOwn
Merge pull request #106 from mantoni/master

has and hasOwn matchers
Up version, license and copyright information
Spies depend on match
Fix for timer callbacks that contain a clock.tick, issue #109
Merge pull request #104 from dira/patch-1

Added a section on how to run the tests.
Merge pull request #110 from wwalser/recursiveClock

Fix for timer callbacks that contain a clock.tick, issue #109
Indentation