Added new serialization utility.

Ignore-this: 65a332ea24a22fb0d2e4cfd84713ce25

Serialization utility modelled after boost serialization library.
But encodes using mencode. Why not make a boost serialization library compatible archive?
Because it is fun not to.

darcs-hash:20141013004751-c21fe-8778dc69529c5d3d267a65cf446fab45fa5a031d
added a utility to simplify creating messages

Ignore-this: b51c899b6e29ad9092bdfd2aa09e60e3

Creating new typed message is tedious. I added a small DSL to make new message types
which takes advantage of the new serialization utility.

darcs-hash:20141013005413-c21fe-1b8dca273e53a375c6a3e9651305d8f55c5c462f
changed userservice to use new message and serialization utilities.

Ignore-this: 55197ef049c2c504091a8a9903a7ab94

New utilities should create a net negative in new code once more services use it.

darcs-hash:20141013005605-c21fe-567e9924402630ebfda935586d22b5ddf105ae9d
removed const char* converstions from mencode

Ignore-this: a24229d5aa64ee879ee4418682724f24

Not needed.

darcs-hash:20141013005854-c21fe-5011adcb31de9c5bea3207de4ba66fb09f77bffc