Implement support for options with homebrew.

 - The support for homebrew options seems to have been lost in fa4d0b6.
 - We support installing options and checking installed options.
 - Options are accepted if the installed ones are a super set of the ones
   declared in rosdep.
 - Checking installed packages can be slow, as we have to call the `brew`
   command for each potential package to check if it is really linked and if the
   options are ok.
 - There are some limitations to what we can detect, for example we do not check
   for formulae from wrong taps, we do not preserve already installed options
   for reinstall of packages (see TODOs in source).
 - Some scenarios cannot be resolved automatically, e.g. installing the correct
   options for a package that is also in the dependency list of another homebrew
   package to be installed (see TODOs in source).
 - See https://github.com/ros-infrastructure/rosdep/issues/299 for a discussion
   of what the semantics should/could be.


 * This is an initial suggestion of what we could implement.
 * What is missing is updating the unit tests.
Can options be `unicode` in Python2? If so you probably want something like `basestring`, but then that doesn't work on Python3, so you need something like this:

```python
try:
    _basestring = basestring
except NameError:
    _basestring = str
```