Service/Client Split

ggp and I have been working on a service/client split, as required to create a service-only library for fennec.