Added system list to the sidebar menu
Use an NSMutableDictionary to store player bindings instead of an array. Now the key is the player number stored in an NSNumber and the value is the player bindings, it removes the need for bound checks, empty devices and NSNull.
Merge remote-tracking branch 'upstream/master'