Run tests into isolation

Cutting off the "big" require in the spec helper, favouring individual files to require the files / libraries they depend on hopefully this will help to protect against a require being in the wrong order. It also has the added benefit that the specs run *much* faster in isolation.