GPII-672: Preferences Server Framework, round 1

Hi Antranig - this is the first pass at the preferences server framework. I still haven't got the tests in kettle to run, but everything in universal + windows pass for me. There are some things that are still a bit rough, but if you could let me know which areas are apalling, so I can start fixing those.. Things I haven't looked too much into on purpose is:
* Updating and checking all the config files - as half of these were already broke and we will have to discuss these in cambridge
* Cleaning up all the NP sets -- this is cambridge stuff as well. (obviously, I did update them to be keyed by the ontologies their in)
* Getting too deep in the MM framework. There are several things that could be improved there, but since some of that stuff have to be rewritten/fixed up later anyway, I didn't want to risk getting lost in it and delaying our switch to conditional preferences

Here's a somewhat simple example of this class of algorithm in the core framework - https://github.com/fluid-project/infusion/blob/master/src/framework/core/js/FluidIoC.js#L1959