fixes custom user-configuration building

This changes the enabling of options to use a bitmask (instead of array)
which is much easier to work with. The old method is still supported

And fixes the overwriting configurations (which were overwriting
due to the defaulting)

Last this adds a more fine grained base-configuration enabling