Make Socket available to clients.

This will allow message encoding/decoding to be shared.
Make unittest a dev dependency.
Add basic tests of Socket.
Refactor Message to work with packets.

They can now also be created from a name and data.
Serialize messages to and from packets.
Move server socket back into lib/src.

I need to expose a Socket based on dart:html to browsers.
Rename dart:io only Socket to IoSocket.
Create an HtmlSocket which can be used in the browser.
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.
Merge remote-tracking branch 'lvivski/master' into socket-available-in-clients

Conflicts:
	test/start_test.dart
Cleaning up browser Socket tests.
socket stream
Merge branch 'socket-available-in-clients' of git://github.com/MarkBennett/start into MarkBennett-socket-available-in-clients

# By Mark Bennett
# Via Mark Bennett
* 'socket-available-in-clients' of git://github.com/MarkBennett/start:
  Cleaning up browser Socket tests.
  Test the exported start package.
  Refactor VM and browser Socket into seperate files.
  Create an HtmlSocket which can be used in the browser.
  Rename dart:io only Socket to IoSocket.
  Move server socket back into lib/src.
  Serialize messages to and from packets.
  Refactor Message to work with packets.
  Add basic tests of Socket.
  Make unittest a dev dependency.
  Make Socket available to clients.

Conflicts:
	lib/src/socket.dart
	lib/start.dart
	pubspec.yaml
pretty close to 0.1.0