Prevent clients logging in multiple times (fixes #150).

Also adds (Async)PlayerPreLoginEvent support.
Provide hostname in PlayerLoginEvent.
Implemented AsyncPlayerChatEvent (fixes #103).
Tidied up EventFactory and its uses.
Made some utility classes final.
Revamped place and dig event handling.

Throw BlockBreakEvents in creative (fixes #273).
Fix BlockPlaceEvents returning AIR (fixes #271).
Prevent block break with swords in creative (fixes #214).
Simplified dig and place logic slightly.
Added basic potion effect definitions (fixes #295).