Improved memory leak issue and multi threading.

Device Enum can now feed out multiple concurrent "reads", useful for accessing the cache from multiple threads.

Consolidated the ComThread code to reduce overhead, and increase multi threading.