Refactor Berkshelf integration to own class
Refactor Librarian integration to own class
Always gitignore cookbooks/ on init

Unless `--no-git` is specified, that is.
Improve `solo init` logic with Berkshelf and Librarian-Chef

Earlier `knife solo init` defaulted to `--berkshelf`. Then if berkshelf
gem if not installed but Berksfile exists, a warning is issued while
cooking.

New rules to select the default action (first one that matches):

1. `:berkshelf` or `:librarian` specified by CLI option or Knife
   configuration.
2. If Berksfile or Cheffile is found, default to the corresponding option.
3. If berkshelf or librarian gem is found, default to corresponding option.
4. Don't init neither, but inform the user.

Berkshelf takes precedence over Librarian. One or both can be denied
with a --no-option.
Add CookbookManager module

Extract common functionality from Berkshelf and Librarian classes.
Add CookbookManagerSelector class

Also move bootstrap code to CookbookManager classes.
Use ~/.berkshelf/knife-solo/<hash> as default instead of a tempdir
Merge branch 'master' into init-berks-librarian
Small code cleanups
Use config_value helper for :git option
Merge pull request #240 from tmatilai/init-berks-librarian

Improve `solo init` logic with Berkshelf and Librarian-Chef