USB devices perms, nth device feature, code cleanup

- add ability to query for usb device permissions
- add open nth device feature
- refactor ElmInterface to remove direct settings access (cleaner
seperation of components)