Fat Jars

### Current Status
* Tested locally and it seems to work.
* Will test a bit more thoroughly with Jenkins tomorrow.
* Wanted to send this PR as a heads-up and get your opinion. 

### Changes
* We will build two jars:
    1. java-native-[VERSION].jar => no changes. continued to be referenced by dependents.
    2. java-native-[VERSION]-[OS].jar => identical to above jar but will be used when building the fat jar
* Once builds for each platform have completed, Jenkins will then run multiplatform-build.gradle which will
    1. retrieve java-native-[VERSION]-*.jar as dependents from Maven
    2. combines all dependent jars into a fat jar
    3. upload to maven and replace the existing java-native-[VERSION].jar (hereafter referred to as a FAT jar).

### Concerns
Without opening java-native-[VERSION].jar, you can't tell whether it is FAT or not. Instead of this maybe we should split the builds:
    1. build couch-base native => produce Fat jar
    2. build everything else => explicitly reference Fat jar built from above.
Not sure if that would be worth the work...