Add nocmx option to generate empty cmx files

The intent of this option is to enable semi-separate *native* compilation. Currently, when a module changes, all the modules that depend on it need to be recompiled. Activating `-nocmx` disables cross-module optimization, but should let us change a module without having to recompile all the others (although to be honest this still have to be verified).

This would be of practical value for development cycles of project that have (compile;test) loops: currently compilation is much slower in native code than in bytecode, but tests can be sensibly faster in native code. `-nocmx` could bring the best of both worlds, with fast compiles and rather-fast tests.