Remove monkey patching [wip]

Ok so this is the first pass at making the final monkey patching optional.

The difficulty is finding "when" to do it, as I don't think it's feasible to remove monkey patching after its happened, so we need to do it at the last possible minute (before spec files are loaded).

ATM I've defaulted to off in our specs, and on in the cucumbers, but we can discuss that if you disagree.

The option name probably needs discussing, and thus the cuke will need refactoring.

Thoughts?

/cc @alindeman @myronmarston @samphippen @soulcutter