Background jobs

Some TODO and probably bugs still in here, but I think this is an OK stopping point that should unblock activator to experiment with it.

You'd want to leave derived settings outside of here.   As you may see, inConfig(Compile) would have the hard "overwrite teh run task" setting, but the dervied would get magically placed into any config that uses it.

I guess, if you're mimicking what's in Defaults.scala, it's probably ok though.