More agressive mocking

When the mock-fs module is required, it immediately monkey patches the real fs module but leaves in tact the underlying binding.  When a mock file system is needed, the binding can be set to one backed by an in-memory implementation.  The original binding can be restored when the mock is no longer needed.

This more agressive mocking allows the mock-fs module to be used with other modules that operate on fs functions when required (e.g. decompress-zip calls `Q.denodeify(fs.open)` when required).  For mock-fs to be used with other modules that operate on fs functions, it must be required first.
1.3.0