Refactor VM and browser Socket into seperate files.

These also come with corresponding tests.
Test the exported start package.

Previously, tests linked in to the /lib folder, exposing some functions
not available to real clients. I would like to re-factor all the test
methods associated with Message into the Socket tests so that Message
does not need to be exposed.