metadata: adding metadata util functions
init: creating new verb for declaring a catkin workspace by creating an empty marker file
build: Enable storing and retrieving build information from catkin tools metadata file
metadata: Switching to use .catkin_tools directory

- Metadata is stored in a `.catkin_tools` directory with a simple README
  file
- Individual yaml files are used for verb-sepcific metadata. I.e.
  `catkin build` creates/updates the file `.catkin_tools/build.yml`
- When initializing the metadata directory, the metadata module checks
  to see if that directory is contained within another
  catkin_tools-based workspace.
clean: new verb
build: Fixing issue on first creation of metadata dir
PEP8 Fixes
Add transient hint to notifications

On gnome-shell, notifications are persistent by default, where the
user needs to clear the notification explicitly. So we add a transient
hint such that the notification doesn't stay in the notification area
indefinitely.
Merge pull request #86 from kartikmohta/master

Add transient hint to notifications
build: Fix CMAKE_PREFIX_PATH and install when using metadata
metadata: Adding preliminary support for independent metadata profiles

init,clean: Making workspace argument non-positional
MAJOR REFACTOR: Adding persistent context

- Added context-aware building
  - `catkin build --this` will determine the package name of the package
    containing the current working directory and build it
- Added `catkin config` verb
  - Unified the build Context class to cover the config options, now in
    catkin_tools.context module
  - Context class now has *_space_abs attributes to distinguish from the
    relative paths stored in the configuration
  - This verb has most of the "configuration-type" options which were in
    catkin build. It also has complementary options which un-set these
    options. For example, `--install` also has `--no-install`.
  - Calling config with no options just displays the config
- Build configuration is now stored by the `config` verb
- Re-worked the `catkin clean` interface to be more intuitive
- Refactored many of the utility functions from `catkin build` to
  separate out their build-specific functionalities from functionalities
  which are useful for other verbs.
  - color.py
  - context.py
  - common.py
  - run*.py
- Moved resultspace-processing functions into resultspace.py
- Moved argument parsing from catkin_build.common to
  catkin_tools.argument_parsing
  - Modified _extract_cmake_and_make_arguments to return [] only if
    `--no-cmake-args`, `--no-make-args`, `--no-catkin-make-args` are set
    and `None` if they are not set and there aren't any special
    arguments. This means that a parsed argument of `cmake_args = []`
    means "clear the cmake args" and `cmake_args = None` means "don't
    modify the cmake args" (similarly for make and catkin_make args)
- Removed *space designation from `catkin build`
- Other configuration options in `catkin build` are only applied
  temporarily. If the user wants to save them, the `--save-config`
  option can be used.
- Main help now shows info for each verb and is sorted alphabetically
- Modify --start-with so that it can be used with --this. i.e. `catkin
  build --start-with --this` will build the package containing the
  current working directory and all those which depend on it
- Added a check for `catkin_make.cache` and `catkin_make_isolated.cache`
  wherein catkin build will abort if these files are found and explain
  to the user that he or she needs to use a different build directory
- Added a check for basic build configuration flags which could change
  between build (see catkin_build/build.py). This checks against a
  hidden file called `.catkin_tools.yml` in the _buildspace_ which
  always contains the last values of these options:
  - workspace
  - install
  - install_space
  - devel_space
  - source_space
  If any of these are different, then catkin build reports and error and
  tells the user which are different
- added option to suppress notifications
- added warnings to the bottom of the Context summary
- made context check for CMAKE_PREFIX_PATH configuration inconsistencies
- added `catkin create` verb which currently is just a pass-through to
  catkin_create_pkg but with a less positional interface
- replaced all uses of `yml` extension with `yaml`
- renamed `catkin build --list` to `catkin build --dry-run` which is a
  more standard term, and as to not be confused with `catkin list`
- documenting new features
- autopep8-based fixup
fill out template in copyright line in LICENSE
remove unused imports
add missing imports
remove unused variables
purely style fixes, line length, unused variables
docs: remove all trailing whitespace
docs: fix length of headings (sphinx warning)
docs: add missing newline which hid a code block