Feature/upgrade hooks v3

Same as https://github.com/middleman/middleman/pull/1165 but for `v3-stable`. One test is failing, but it was already failing before:

~~~
SASS .sass-cache custom location ......F
  expected directory?("/tmp/middleman-core-custom-sass_cache_path") to return true, got false (RSpec::Expectations::ExpectationNotMetError)
  features/sass_cache_path.feature:22:in `Then a directory named "/tmp/middleman-core-custom-sass_cache_path" should exist'
~~~