add unit test

add unit test to check DuplicateEventSettingError is thrown
appropriately.
minor unit test alteration
refactored to split eventable into two types

eventable is no emitter and detector. closes #1
Merge pull request #2 from 0xor1/dev

dev -> master