Attempt at reducing duplication.
Attempt to fix leaking specs.
Extract composition enqueuing into its own class;

A side-effect of this is recognising that interface enqueuing could be simplified, thus the addition of an #enqueue method to the interface which sends the stringified version of itself to the queue.
Move attribute coercion into separate directory.
No need to reset position to start of line after each #clear_line.
Inline #json_attributes method.
Make tests faster (reduces runtime by ~40ms);

Tests currently run at around 160-200ms for the 305 assertions, by disabling garbage collection, this time drops to around 120ms-160ms.
Remove commented out tests.
No need to invoke new interface each time.
Cache some test setup.
Move Collection into attributes directory.
Move tests into respective attributes directory.
Remove .find, use .query instead;

Also, instead of returning the meaningless nil, we return false or raise an exception if the entity cannot be found.
Merge pull request #42 from gavinlaking/twerks

Cleanup.