Removing datatype from cache vars, adding warning about XXX_ENABLE_YYY vars

With newer versions of CMake, you don't need to specify the cache var
datatype.  If you leave it off, CMake will use the type that is determined in
the SET( ... CACHE <TYPE> ) call.

Also, I added a warnin about XXX_ENABLE_YYY vars only accepting "ON", "OFF"
and "".
Regenerated
Added support for <PACKAGE_NAME>_SOURCE_DIR_OVERRIDE

This allows you to point to a different directory for the implementation of a
package.  This works for full packages only, not subpackages.

I have a very good test that shows that this works, even for a package with
subpackages.