Split tests

Adds a separate file for each test and puts all the test utilities such as `fakeFiles` on a separate file `_utils.js`