Merge 01: Test fixes, pom.xml modifications, adds google guava

Fixes also Issue 83
Issue 84: GPS location parsing doesn't handle NaN values

If a rational used for GPS is 0/0 it will be converted to 0 not NaN.
Issue 91: Use specialized exception for unsupported file formats

ImageProcessingException contains now public string constants, which
will be used for exception messages, such as a not supported file
format. You can check if the exception message equals one of these
messages, so you can alter your exception treatment based on the
exception message.
Fixes FindBugs warnings
Issue 72: Review StreamReader.skip logic

The problem is solved by using ByteStreams.skipFully() from the guava
library.
Replaces FileUtil with Files from Google Guava.
ImageMetadataReader can now read web images.

Reverts path changes which were a result of merging.
Substitutes references to Exception with one of its subclasses.

Throwing and especially catching Exception instead of a subclass should
be avoided and only be done if necessary.
Removes redundant interface from Rational
Adds missing @Override annotations
Made methods static where possible without changing the method behaviour