build: Adding --extend argument to control workspace parent

This adds `--extend` as an argument to `catkin build` which enables explicit chaining to/overlaying of another workspace. It is equivalent to sourcing the given workspace in a subshell building the current workspace, and then exiting that shell. For this to work properly, it requires that any variables defined in the current environment as a result of the previously-sourced workspace can be rolled back by their respective rollback hooks.

The `--extend` flag calls the `load_workspace_environment()` function at the beginning of the `catkin build` verb invocation which sources another workspace's environment before initiating the build process, but does not change the caller's environment.  Calling `catkin build --extend` also implicitly enables `--force-cmake`. This makes it easy to switch the "parents" of a workspace.

This PR also prints out the `$CMAKE_PREFIX_PATH` used by the workspace at the beginning of the build for greater visibility.

- [x] decide on the argument name (should be based on standard name for this action as decided in [rep#78](https://github.com/ros-infrastructure/rep/issues/78#issuecomment-45562093)
  - `--extend` (current)
  - `--extend-ws` (old)
  - `--overlay`
  - `--chain`
- [x] add documentation for this argument
So, what would you expect if I passed `--extend-ws ""`? I would expect it explicitly sent a blank CPP, but in this case it will pass through the existing CPP. In fact I'm not sure if `len(opts.extend_path) > 0` will ever be False when `opts.extend_path` is True.