Fixed de-serialization bug

Fixed a miss typed a label constant.
Fixed macro recording bug

Each subsequent recorded macro hade more keyboard actions due to not
properly removing the keyboard hook.
Removed copy pasta errors

Copied exceptions messages have been updated to contain relevant
information.
Added HasChanges method to MacroService

Added HasChanges method to MacroService
Check if any changes are made on exit.

Added a check to verify that no un-saved changes are made on exit.