Move key handler to a separate class
Use binary settings storage

Allows us to serialize more information than using XML
Update MainWindow to use new key handler
Update settings to store keys as an ObservableCollection

Makes binding to the UI considerably easier
Update UI to allow multiple commands to be bound