cmTarget: factor out initialization of properties
This brings all of the properties together instead of being spread out
across the constructor. There are very few exceptions (e.g.,
POSITION_INDEPENDENT_CODE
being forced on certain target types), so
just handle them as-is.
Edited by Brad King