refactored rapidsms.message into incoming and outgoing
refactored rapidsms.message into incoming and outgoing

representing incoming and outgoing messages with a single class has
irritated me for a long time. they're both _messages_ (hence the very
slim base class), but sharing the interface has never made sense. why
can i reply to an outgoing message? and why can i "send" an incoming
message??

so i fixed it. also introduced ErrorMessage, which i'll use (at some
point) to start raising user errors as exceptions, to avoid the often
seen `msg.respond("you did it wrong")\n return True`, and make them
catchable (by things like the training app, which is right now using
a fucking ENUM to tell what's what)

adammck/rapidsms-community-apps,adammck/rapidsms-community-apps