Changed Message creation classes.

Moved all Message construction methods to a single factory class.
Also made Message into an actual class (instead of an interface), introduced
some convenience methods for Messages, and wrote a parseMessage(String)
method.

Removed FingerUp and FingerDown messages, and replaced them with a single
Message denoting the location of the power in use. Also removed NullMessage,
since it was not useful (we now throw exceptions upon failure instead).