Add support for passing in sockets

The docs specify that you can pass in a preexisting socket but
prior to this commit, that was not actually the case.
Merge pull request #32 from zsprackett/master

Add support for passing in sockets
Bump version.
Resolver now implemented using celluloid. Converting server handlers, but encountering some issues.
Basic support for UDP server using Celluloid.
Resolver unit test passing, basic server working.
Add asynchronous option for unit testing.
Extracted common functionality to RubyDNS::Transport module.
test_truncation now working.
test passthrough now working.
Fixed logging typo.
Minimum timeout 1 second.
Catch error explicitly.
Use new permissions module.
Trying to get slow resolver to work correctly - having issues.
Better logging out put, tests now using RSpec, better error handling.
Organised specs into submodules.
Fixed up organisation of `run` calls.
Update dependencies.
Rspec is already in gemspec.