Separating request response from creation.

ResponseHandler for a given Request object is now specified when a
request is made, not when the request is first created.
Removing tags from Request.

Requests should remain independent of any tags. Reworked ChatModel so
that these tags are no longer needed.
Simplify Request & Connection interaction.

Remove the Request object from ResponseHandler. Replace SimulatedRequest
which a simpler implementation, so that SimulatedConnection is no longer
required.
Massive amount of refactoring.

Deleted some unused classes (ParentModel, DeferredAction,
ProgressHandler)
Moved some classes inside parent class files. (ChildModel, LiveMessage).
Renamed ProgressHandler to Callback.
Separated out Models with no callbacks from "LinkedModels" i.e. Models
with callbacks. This gets rid of the silly Model<Void> everywhere.