Bug 1084342: Move |SocketMessageWatcher| to separate file, r=shawnjohnjr

This patch moves |SocketMessageWatcher| into a separate file. The new
Bluetooth daemon will require it's functionality for OPP profiles.
Bug 1084342: Fix receive buffer size in |SocketMessageWatcher|, r=shawnjohnjr

|SocketMessageWatcher| currently allocates a large amount of memory
for holding ancillary data. The only actually transfered value is a
file descriptor. This patch fixes the buffer size accordingly.
Bug 1084342: Copy received ancillary data into |SocketMessageWatcher|, r=shawnjohnjr

The cast-and-assign pattern for retrieving file descriptors is prone to
SIGBUS signals on platforms that don't support unaligned memory access.
This patch fixes the problem by copying the received data directly.