Code cleanup, bug fixes, clear device list

Tons of code cleanup
Clears device list when reloading devices
Better tracking of devices and their control names
Move MD5 to its own class for easier code readability
Move managed audio device to its own class for easier code readability
More comments to help explain what code is doing