Refactoring of ArduinoSerial class and serial port access for clarity

I was trying to follow existing code ideas and lines, but made a bunch of tidying and cleanup refactors. Here is a short list:

* Adding explicit warning about needing to manually create ```/var/lock``` on Mac OS-X 
* Reformatted all of my current and previous changes (including last PR) according to ```codeformat.xml``` file
* Switched back to ERROR the case when port is simply not found otherwise the flow is really confusing
* extracted ```java waitFor(int delay)``` method that's reused across ```ArduinoSerial``` class
* extracted hardcoded board names into String constants for ease of mainteneance
* added some defensive code around preventing Null Pointer Exceptions I was getting
* renamed methods and variables according to Java's published naming standard
* rewrote method ```java waitForComPortsToReappear()``` to hopefully improve readability, and made it shorter
* introduced new optional variable ```A.UPLOAD.FORCE_NO_WAIT_FOR_UPLOAD_PORT``` if set to "true" will skip waiting for ports even for Arduino Esplora, etc.
 
Sorry for such a big PR!  I was in the car and couldn't stop :)