Ton of changes, read details.

Probably should have broke this into multiple commits, but it's only initial
development, right?

* Implemented CommandFactory to handle creation of commands and their
  associated sequence objects.
* Moved much of the logic from the protocol to the client. The protocol is
  only responsbile for translating IRC messages and handling a sequence of IRC
  messages.
* Implemented FilteredObservable. This allows for the creation of an observable
  object that emits events. Observers can listen for events and select only the
  events they wish to handle.
* Implemented Channel and User classes. These classes represent the channels
  and users in IRC.
* Implemented Messageable. Messageable provides functionality for sending
  messages and notices to IRC entities (users/channels).
* Implemented Synchronizable. IRC entity objects may not contain all of their
  information. For instance, a User object will have a nickname, but its user,
  host, or real name may not be known. Synchronizable resolves this by allowing
  entities to execute methods to synchronize the object.
* Bug fixes here and there.