Added ChannelProvider for additional abstraction

Added ChannelProvider to move NIO channel opening from initialization
to another class. This will make integrating with libraries like LibGDX
much simpler.
Merge branch 'master' of https://github.com/ClickerMonkey/Blackbuck