**CHANGELOG:**
* access to devices on the gateway has changed; to access a device through the gateway, use the following syntax: <br/> `[gateway].[server_name].[device_name]`
- the gateway `servers` dictionary is now a dunder variable `_servers` and should not be accessed; the gateway `devs` dictionary has been removed.
- the instrument server `devs` dictionary is now a dunder variable `_devs` and should not be accessed
* release of new *Instrument Manager* GUI:
- uses `InservGateway` connection to communication to instrument servers (no longer uses MongoDB)
- device updates are set from the manager as soon as you finish typing (do not need to press enter)
- instrument manager GUI automatically updates values whenever the instrument server values update (*Note:* if the hardware updates, but the device driver on the instrument server does not get notified, then the instrument manager will not reflect this updated state either)
* rewrite of base `NSpyreApp` *Qt QApplication* class
* rewrite of *NSpyre Startup* GUI
* improvements to how NSpyre component GUI windows are launched
* improvements to the display settings and fonts of NSpyre GUIs for high resolution displays
* fixed an issue where the active config file changes if a config file above the active file in the config list is deleted
* `InservGateway` now spawns RPyC connections to instrument servers as background threads to prevent blocking of the Qt event loop for GUI applications
* implemented `on_about_to_disconnect` methods to `InstrumentServer` by monkey-wrapping RPyC `Service` class; this prevents callback functions between the instrument server and instrument manager from causing the server to crash on disconnect
* meta-data update to documentation, including installing nspyre, testing a successful install, and writing configuration files