Merge pull request #2 from 0xor1/dev

dev -> master
Merge pull request #4 from 0xor1/dev

dev -> master
Merge pull request #5 from 0xor1/dev

dev -> master
Merge pull request #6 from 0xor1/dev

dev -> master
Merge pull request #7 from 0xor1/dev

dev -> master
Merge pull request #8 from 0xor1/dev

update readme
Merge pull request #9 from 0xor1/dev

update unit tests to use expectAsync
Merge remote-tracking branch 'origin/dev'
Make Event generic Event<T>

add generic type for better static type checking during dev.
Merge pull request #10 from 0xor1/master

Master