Remove cyclic dependencies;

Terminal -> Application
Esc 	 -> Terminal

Also, remove redundant requiring of Terminal from EventRepository.
Add dependencies document;

A silly document which shows me which classes are referencing which other classes. For some reason this helps me to understand the structure of the project.
Reduce InterfaceRenderer into 2 classes;

ClearInterface (clears the interface!)
RenderInterface (have a guess).
Reorganising 'parsing' part of project.
Remove redundant rescue;

Kernel.loop catches StopIteration and causes the loop to terminate, therefore anything in this block would never have been called anyway.
Trigger user's response to :escape first.
Add exit event.
Update with more helpful (hopefully!) information.
Fix example app to accept arguments.
Add options for cooked or raw mode terminal to configuration parser.
Event names are symbols.
Reduce test noise.
Simplify Collection nil or empty test.
Add app/test stats script (DAS Ep.01).
Merge pull request #45 from gavinlaking/twerks

More stuff!