Major refactor to make it easier to extend, and now runs with Gulp

#59 
It's supposed to. This is only so that the tests run one after the other and not both at the same time