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
Well, I feel like `--extend ""` should be invalid since you can't "extend" something that doesn't exist. Furthermore, in order to roll back environment variables, you need some setup file to run. Unless there's a setup file somewhere that rolls back but doesn't add anything to the environment, we'd need to implement this behavior. That's something we could do, but I feel like it's out of scope for this PR.