Bug 1046109: Add |SocketConsumerBase| and inherit |UnixSocketConsumer| from it, r=kyle

|SocketConsumerBase| handles connection state for |UnixSocketConsumer|
and its derived classes. Implementing classes must override a number of
virtual methods, to handle notifications about changes to the state of
the connection.
Bug 1046109: Add |SocketIORunnable|, r=kyle

|SocketIORunnable| is a runnable class template that holds a
reference to a arbitrary Socket I/O object.  |SocketIORunnable|
replaces |UnixSocketImplRunnable|, which only handles objects of
type |UnixSocketImpl|.
Bug 1046109: Add |SocketIOEventRunnable|, r=kyle

|SocketIOEventRunnable| sends a notification from the Socket I/O
object to a Socket consumer on the main thread.
Bug 1046109: Add |SocketIOReceiveRunnable|, r=kyle

|SocketIOReceiveRunnable| sends received data from the Socket I/O
object on the I/O thread to the Socket consumer on the main thread.
Bug 1046109: Add |SocketIORequestClosingRunnable|, r=kyle

|SocketIORequestClosingRunnable| notifies the Socket consumer on
the main thread to clean up the Socket I/O object and close the
connection.
Bug 1046109: Add |SocketIODeleteInstanceRunnable|, r=kyle

|SocketIODeleteInstanceRunnable| deletes a Socket I/O object on the
main thread. This is required to serialize the close operation of
Socket consumers.
Bug 1046109: Add |SocketIOBase|, r=kyle

|SocketIOBase| is a base class for Socket I/O classes. It's not a
requirement, but provides a number of helpful methods for common
I/O operations on the I/O thread.
Bug 1046109: Add |SocketIOTask|, r=kyle

|SocketIOTask| is a task-class template that holds a reference to
a Socket I/O object. It replaces |UnixSocketImplTask|, which only
supports objects of type |UnixSocketImpl|.
Bug 1046109: Add |SocketIOSendTask|, r=kyle

|SocketIOSendTask| moves data from the main thread to the Socket I/O
class on the I/O thread, and invokes the Socket I/O classes sending
methods.
Bug 1046109: Add |SocketIOShutdownTask|, r=kyle

|SocketIOShutdownTask| invokes the shutdown procedure for Socket I/O
objects on the I/O thread.
Bug 1046109: Cleanup |UnixSocketImpl|, r=kyle

This patch cleans up |UnixSocketImpl| and it's file in general. The
patch

 - renames |UnixSocketImpl| to |UnixSocketConsumerIO|,
 - moves method definitions out of class definition,
 - adds const correctness,
 - adds MOZ_FINAL to several classes,
 - moves task classes to a separate location.

No functional changes are performed.