Make the Principals Serializable and send Subject to remote side if requested.

This pull request is making use of JBoss Marshalling to pass the Subject over the connection.

Slightly concerned about any backwards compatibility issues in the future so may take this to an additional step where our own protocol describes how to re-assemble the Subject from scratch.