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...
In order to prevent race conditions and general confusion wouldn't it make sense to have the maven build file ONLY build the nativeJar (e.g. with the OS/Arch as part of the name) and then have a Jenkins process that produces the final fat jar? E.g. shouldn't we get rid of 'archives jar' all together? We should, however, still keep sourcesJar since it's content should (famous last words) be the same on all platforms so race conditions are fine.