Fix normalizing the recipents between the object and the activity. Also
allow the handlers to adjust what gets placed in the outbox, since the
client-to-server API allows the server to modify the object before being
delivered.
Also move some functions out of the generic Application interface into
the specialized SocialApp interface. They will be moved back into the
Application interface if further development needs it when implementing
inbox forwarding, for example.
Also refactored the likes/liked add-to-collections logic so that they
are also applicable for following and followers collections. This code
is still as ugly as sin.
Before more tests are to be written, the delivererPool concept needs to
be fully divorced out of the fed library. It is a detail that is
tangential but supplementary. Right now though it is complicating the
tests due to its asynchronous & complex nature. Breaking it out
will simplify the ~90 tests remaining that capture the more nuanced
behavior of this implementation.