add operator==, remoteIP and remotePort to EthernetClient
add localPort to EthernetClient, simplify operator==
add some lines of comment to ChatServer.ino, remove redundant assignment of Client-instance
revert Chatserver example, create new AdvancedChatServer based on it
apply AdvancedChatServer.ino changes to renamed ChatServer.ino
FileUtils.readFileToString opens files with UTF-8 encoding
removing RXTX, switching to JSSC
jssc: updated config files (eclipse, ant build.xml, windows launcher, mac template.app), removed rxtx binaries
Fixed upload on Arduino Leonardo (and derivatives) with JSSC on Mac.

See #1633
Don't re-set board preference when changing custom suboptions

Since the custom suboptions are only visible when their associated board
is the currently selected one, there is no point in re-setting the
current board when a suboption is selected.
Pass TargetBoard objects around instead of strings

Previously, strings containing the board id, or a joined version of the
package, platform and board id were passed around. Since comparing
objects is easier than strings and since parsing strings can be fragile,
it's better to just pass the TargetBoard objects.

There is one case where string parsing is still required: when parsing
the --board commandline option. However, the parsing is now done in the
right place, when handling the commandline, instead of in a generic
selectBoard method.
Handle errors in the --board parameter

Previously, it would just raise nullpointer or index out of bounds
exceptions when the --board paramater was wrong.
Handle sketch with only invalid code filenames

Previously, this would error out with an index out of bounds exception.
Now, an IOException is thrown, which is properly handled further up the
call chain.
Show an error on unknown options
Slightly delay opening of files specified on the commandline

Instead of opening up files during argument processing, the filenames
are now stored in a list and opened only after all commandline arguments
have been processed.

This commit in itself shouldn't change any behaviour, but it prepares
for improved error reporting in the next commits.
Improve error handling for files on the commandline

Previously, any files that were specified on the commandline but could
not be opened were silently ignored. Only if --verify and --upload was
specified and _all_ files failed to open, a generic error message was
shown. Additionally, if multiple files were specified with --verify or
--upload, only the first would be acted on (the others would be openened
and shown in the GUI, but not actually verified or uploaded).

Now, whenever a file fails to open, an error message is shown (fatal
with --verify or --upload, non-fatal otherwise).

Furthermore, with --verify or --upload an error is shown when there is
not exactly one file on the commandline.

Finally, instead of keeping an "opened" variable, the code now just
checks the size of "editors" to see if a blank sketch should be opened.
Error out when a required commandline argument is left out
Add --pref option

This allows setting preferences through the commandline.
Pass arguments to the Compiler constructor

Previously, these arguments would be passed to the compile method.
However, passing them to the constructor makes sure that the build
preferences are created sooner, so they can be used by Sketch before
calling the compile method.

This commit shouldn't change any behaviour, but prepares for the next
commits.
Move the definition of primaryClassName in Sketch

Instead of defining in the preprocess method and returning, just define
it in the build method. This makes sure the name is available before
preprocessing, which is important for the upcoming commits.

This commit should not change behaviour, only prepare for the next
commits.