CMake script cleanup

Replaced set's with list(APPEND) where applicable.
Cleaned up where possible
Renamed and moved unit test binaries.
Reduce contrib instructions to one line.
Added more cmake option filters based on target platform.
Merge branch 'cmake-lists' into develop