Combine options from root, configuration and target framework.
- Added Combine to CompilerOptions that combines a list of
 CompilerOptions in order applying them left to right.
- Made boolean CompilerOptions nullable so we can detect if they were
 set of not.
Always have default target framework specific compiler options.