Custom weight shift

Add custom weight_shift's and email notification
- Add support for per device custom weight_shift values
- Add support for sending email notifications on ring generation via
  smtplib.
- Fixes #4