Implement more module standards

- Use chaining instead of require/notify.
- Catch unsupported OSs.
- Additional test coverage.
- Change how params are passed between classes based on what we learnt in puppet-openconnect.
- Flesh out README a bit more.