Tidy up tests.
Add Events class to store events. (of course).
Convert Geometry to Virtus.model.
Reorganise project and fix path to test_helper.
Move 'layer' to Geometry and rename to 'z'.
Remove Cucumber; not using it.
Remove Formatting module.
Major refactoring.
Remove #to_compositor methods.
Rename Style to StyleCollection;

Also, add Coercions to avoid repetition of coercion logic.
Rename JSONParser to generic Parser.
Move String conversion into Virtus::Attribute.coerce override method.
Use InterfaceCollection instead of Array[Interface]
Use LineCollection instead of Array[Line].
Use current attribute instead of custom methods.
Use StreamCollection instead of Array[Stream], also;

- Remove unnecessary *_to_compositor methods.
- Reorder string output to colour, style to match Stream.
Create different compositions to test functionality.
Extract Foreground and Background to separate files.
Demote to private methods;

Also, add test for .create.
Update tests.