Adding timer to send ping requests to the server every 30 seconds
Make pings respect the queue.

- Add options to control the pings called keepalive.
- Alter the purpose of the create methods. createIrcClient is now only
  for testing. CreateIrcClient should be called when this type is
  actually going to be used.
- Add test for keepalive functionality.
Changing sleepy time calculations to better match irc servers
Merge branch 'floods'

- The power of rebase was forgotten before this was pushed.
Fix up submitted flood and keepalive code.

- Add new config variables to control new functionality.
- Update documentation to reflect to functionality.
- Fix edge cases with flood protect.
- Fix tests for flood protect and keep alive.
- Simplify the creation of IrcClient for the client by using
  time.Duration as the argument types.