feat: update all dependencies and modernize the source base
This is first of many PRs which I want to introduce in order to get this SDK up to date. 

First step in my master plan is update all dependencies, Gradle version and used plugins. Also this PR will cover updating to Java 8 and taking advantage of all sweet features of it. I prefer to make a small incremental steps so the PRs to be easy to review. 

Code optimisation which have been done:
- Replace all anonymous classes with lambdas where possible.
- Make all fields final where possible
- Internal classes as static where possible
- Replace test assertions with context ones
- Use diamond <> where possible
- Use method references where possible
- Imports re-arrange

**NOTE:** No business logic was changed so far

Updating of the Firebase Messaging should address https://github.com/parse-community/Parse-SDK-Android/issues/1071#issuecomment-840608858 as there introduce some breaking changes and when using the Parse FCM there are signature issues with latest version of FCM
bolts-tasks/build.gradle
// Copyright (c) Facebook, Inc. and its affiliates.
//
// This source code is licensed under the MIT license found in the/
// LICENSE file in the root directory of this source tree.

apply plugin: 'java'
apply plugin: 'maven'

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

dependencies {
    provided 'com.google.android:android:4.1.1.4'
    testImplementation 'junit:junit:4.12'
}


javadoc.options.addStringOption('Xdoclint:none', '-quiet')

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from sourceSets.main.allJava
}

task javadocJar (type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

//endregion

//region Code Coverage

apply plugin: 'jacoco'

jacoco {
    toolVersion = '0.7.1.201405082137'
}

jacocoTestReport {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
        xml.enabled true
        html.enabled true
    }
}

//endregion

// Copyright (c) Facebook, Inc. and its affiliates.
//
// This source code is licensed under the MIT license found in the/
// LICENSE file in the root directory of this source tree.

apply plugin: 'java'
apply plugin: 'maven'

dependencies {
    compileOnly 'com.google.android:android:4.1.1.4'
    testImplementation 'junit:junit:4.13.2'
}

javadoc.options.addStringOption('Xdoclint:none', '-quiet')

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from sourceSets.main.allJava
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

//endregion

//region Code Coverage

apply plugin: 'jacoco'

jacocoTestReport {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
        xml.enabled true
        html.enabled true
    }
}

//endregion

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}
Nice catch! Feel free to add it to your #1122