Check if required gem is installed, and install if not already installed

If the required gem is not installed it'll prompt the user if they want to install it.
Root permissions are often needed to run the `gem install`, so if it fails we try again with `sudo`.

- [x] test on multiple systems
- [ ] unit tests
- [x] documentation