Fixes #42.
Fixed #39
Fixes #41. Also fixed a bug where the setting wasn't forced to lower case and could fail with On as invalid.
If setting is not 'on', it defaults to 'off'.
Fixed some wrongly named variables and methods.
Changed the way all subscriptions is added and removed.
Changed so setting subscriptions uses internal methods.
Moved some checks around and added tests for illegal operations.