RFC Initial headless stuff

So I thought it would be kindof nice to have a server version of xbmc for helix and started looking at what would be needed. But before I venture to far I wanted to get some thoughts on the matter on how we want to do this.

@Montellese I'm not sure how defaults are handled here, my idea is that in a headless version we kindof must have http server, without the server you really have no way of connecting to it so feels valid to override it to true. However I did this via default=true, which I assume won't work if the user has enabled and disabled webserver before?

So questions which I have with this, do we want to have a headless version to use the same executable or should we compile two different ones? I.e. do we want to treat a headless version as a normal version but just without the GUI turned on. Or do we want to differentiate them with less/different libraries linked in.

Also, do we want to share all settings between the versions? I reckon most users will either use it as server or as servlet, but on normal desktops it might be valid to have a mix. So that you start it as server on start of the desktop but you later launch just the GUI. Or do we want to keep these as two different processes?