Add a shebang
Add support for re-exec without loosing IRC connection

This allows you to execute a new version of the bot, while preserving
the connection to the IRC server.

To make this possible, the IRC connect method of Cinch is overridden. If
bot.config.fd is specified, it tries to use the socket for that file
descriptor. Otherwise, the original connect is used.

The environment variable IRC_SERVER_FD is read into bot.config.fd on
process start. After a successful connection, the environment variable
is set to the file descriptor number of the connection.

On the signal HUP, the process will call exec with its own name and
arguments, and pass on the open socket.
Make the override of Cinch a bit cleaner

 - Use fd redirection for the socket, instead of disabling close_on_exec
 - Set the environment variable for the fd right before re-exec, instead
   of after connection.
Specify ruby in the re-exec command

Previously, the re-exec only worked if the process was spawned by
executing the script directly (using the shebang). This makes it work
when executing by it using ruby explicitly.
Fix Cinch state after re-exec

The Cinch module stores some IRC state, such as joined channels.
Previously, this would not be correct after a re-exec. This commit does
two things to set the correct state after a re-exec.

 - IRC registration messages is stored in an environment variable. After
   a re-exec they are parsed again. This sets the connection state.
 - The NAMES command is sent to all the channels in the configuration.
   This ensures that the state of each channel is correct.
Merge pull request #1 from trygveaa/re-exec

Add support for re-exec without loosing IRC connection