refactoring + testing

remove priority from dispatcher
fix dispatcher bugs
add event stub for testing
begin dispatcher testing

the way that priority was being handled with array keys was causing some problems, i propose that if you want to use priority, then create value objects

a number of dispatcher bugs were fixed and i tried to simplify the code where possible

i created an event stub to prevent the need for a mock

i used mocking on listener to allow us to verify that the correct event was passed into it

i added mockery and started testing of the dispatcher