Lots more feature and performance changes.  Discuss!

Added new QueueLogger class (logging from a queue so we can do thread-safe logging)
Moved core and station to new common log functions (_info and _err) using new QueueLogger
Core now attempts to restart stations that stop
Core now detects new folders on the fly instead of only at start time (stationfolder option)
Station.py has a lot of changes to utilize the common blocking queue ( self.q.get(1) ) only when needed rather than at every step (may increase performance on installs with many stations)
Lots more error handling when blocking queue is utilized to ensure that one error doesn't kill other threads
Renamed station and stations variables within core to be more clear what they contain

TODO:
Detect proper vs unexpected shutdown of stations and restart only unexpected ones
Make new folder detection for stationfolder an option