use MakeCp/CMakeMake multiple inheritance + do out-of-source build for BamTools

use multiple inheritance with MakeCp and CMakeMake to avoid code copy-paste, create build dir for out-of-source build