Rework deprecations

- Dropped support for RubyGems < 1.8.0 (prevented refactoring)
- Stopped guard for using it's own deprecated methods
- Added a convenient way to add deprecations, separate them from the main code, but also test them reliably.
- `GUARD_STRICT` environment variable to prevent loading deprecated methods (so guard doesn't use them internally) - also turns of specs for deprecations