Refactor switching the runlevel.

- Get the current runlevel before lowering the runlevel.
- Raise the runlevel to the original level in case of an exception.
- Raise the runlevel to the original level after performing the upgrade.
- Add documentation.
Change the version number
Merge pull request #13 from bhoflack/RESET_RUNLEVEL_AFTER_EXCEPTION

Reset runlevel after exception