Implement PHPSpec and refactor Collection test

This commit implements PHPSpec for behaviour driven development. Rather than unit testing through PHPUnit we'll specify the expected behaviour of the object.

For illustration purposes I've refactored the SupportCollectionTest into a PHPSpec specification. It takes over all of the tests in the SupportCollectionTest.

Some advantages:

- Much more readable tests.
- Faster tests. This gets cached but the first time I ran the PHPUnit test I got ~160ms and when I ran the PHPSpec test I got ~119ms. This will probably not make a huge difference on a tool like Travis but all bits are nice.