Updated cooling code and added compressor device support plus some other small changes

Had to refactor output control to move some logic out.  Essentially, I moved the logic out of output control and into a class called OutputDevice.  Logic remains pretty much the same, but doing this allowed me to create a new kind of OutputDevice - one for a compressor based cooling device that can't handle duty other than 0 and 100.  It also cleaned up some of the code in OutputControl because the cooling device and heating device were pretty much the same.  For now, I needed to add a quick way to add a cooling device by having it's name start with cool_ - a hack for now, i know, but I have a brew that needs fermentation, so i needed to get this in there.

Other changes - 
BrewServer.java
I added a way to change the base directory so that i can test inside netbeans using environment variable (ELSINORE_ROOT)
I added a way to turn debug on using environment variables (ELSINORE_DEBUG)
I also fixed the way the logger was getting initialized so that it didn't output log messages twice

 
I can add an option though it won't really help my case.  Do you mind if the environment variable is also there?  When testing on my windows box in the IDE, environment variables are much easier to set and test with.  Setting command line options is more painful because then i have to remember to run with a special run profile.  Same for the debug option, the environment variable is much simpler when testing on an alternate OS.  Thoughts?