The first changes shorts to integers to allow using shapefiles with a larger number of regions
The second reads the .cpg file (if it exists) to determine the character encoding of the shapefile's databases
The third and fourth add the possibility to calculate if a point is within a particular distance of a region (including accounting for holes, area within holes etc).
Four commits:
I've compared the result to https://github.com/gbif/geocode (specifically, https://github.com/gbif/geocode/blob/master/geocode-ws/src/test/java/org/gbif/geocode/ws/service/impl/ShapefilesVsPostgisComparisonIT.java) and haven't found any differences. The Java version is considerably faster, mostly as it avoids the round trip to the database.