Use guard compat

- use Guard::Compat to prevent tests from failing due to internal changes in Guard
- upgrade RSpec to 3.1 (and specs too)
- add RuboCop (mostly to avoid ws changes in commits)
- rework the template spec using Guard::Compat::Test::Template