Add catkin_download functions for build data

Add two functions for downloading data at build time; catkin_download_build_data and catkin_download_extra_data. These are useful for download large data blobs such as binaries or configuration that users don't want to include in their repositories.

This is different from catkin_download_test_data because:

 * It always builds, and thus always checks the checksum; re-downloading the file if it has changed
 * It isn't hidden behind the CATKIN_ENABLE_TESTING flag
 * It's optionally added to the all target so that it runs as part of the normal build
 * It adds a REQUIRED option in cmake, which allows the download to fail with a warning, without causing the build to fail completely. This is useful for doing builds when there is no network connection.
 * It adds the download_extra_data target, which depends on all of the download targets

Comments welcome.