Merge pull request #1 from helpmebot/master

Update my fork with current version
If !coffee is called with no parameters, helpmebot pours a cup for whomever asked for it.

Simon, I think this should be right (should work).  If it does, great pull it in and I'll update the others that should do this as well; otherwise, please fix any errors and add a little note as to why it wouldn't work like this so I can learn and I'll try again with another (probably "tea" next since this is based on that).  Thanks!
New ping command...

`!ping` pings Helpmebot ( replies with http://helpmebot.org.uk/wiki/Message:CmdPing )
`!ping <username>` pings <username> ( replies with http://helpmebot.org.uk/wiki/Message:CmdPingUser )
Rename ping.cs to Ping.cs
Add "Ping.cs" to includes
Using Simon's suggestion...
Cleaned up.
fixes:

* declare a few variables (Ping, Coffee)
* move one variable to an outer scope (Ping - message)
* auto-gen documentation
* fix project file copying non-existent file to output dir causing errors on build
stylecop - refactoring and fixes
massive refactor of commands - use fields/props instead of passing parameters around everywhere.
make old ExecuteCommand(User, string, string[]) obsolete.

Use the new ExecuteCommand() method, and the this.Source, this.Channel, and this.Arguments properties.
upgrade some commands to new way of doing things
squash!
Create Soda.cs

Hrmm... Creating this is making me think that there should just be a "FunCommands.cs" and that it should use the same logic for all of these and that these sub-classes should just call the FunCommands class and pass in the name of the command (Tea, Soda, Coffee, Nuke, Whale, Trout, etc).  That should greatly reduce the amount of code...
Add Soda.cs to the project file.
Add "default" variable response
Add "default" variable response
Updated to use "default" if undefined and forbiddenTargets.
define name
Updated to use "default" if undefined target.