cmake: adds a NoOptWithASM build type for building with assembly output and no optimizations for better debugging.
cmake: Create a cmake file to hold various project build types.

Addes build types for debugging by saving all temporary build files (including the .s ASM files) for various levels of optimization.
cmake: added a check for the set build type.
Merge branch 'cmake_asm_out'
Merge branch 'master' into next