Author: Dan Davydov <davydovdan@gmail.com>
Date:   Fri Jul 18 10:39:00 2014 -0700

    Enable Nailgun Per Task

    For discussion around this patch please see: https://groups.google.com/forum/#!searchin/pants-devel/nailgun/pants-devel/wcvYfUvhPeg/uyFfy6_IqPEJ
    Note for antlr3 / antlr4 I made their ng-killall option under a new more generic [antlr] config section. Also note that any classes that extend NailgunTask must supply
    the config_section constructor parameter (otherwise when nailgun is attempted to be used it will fail), this is intentional
    (though this would obviously be better do to during compile time rather than run time).

    Also did a bit of style/duplicate code refactoring.

    Testing Done:
    Added print statements to nailgun/non-nailgun execution paths, and tested different combinations of pants configs:
    -No use_nailgun flags (should always use nailgun)
    -use_nailgun: False in [DEFAULT] (should never use nailgun)
    -use_nailgun: False in [DEFAULT] and use_nailgun: True in [scala-compile] (nailgun was only used for scala)

    Also
    ./build-support/ci.sh

    Reviewed at https://rbcommons.com/s/twitter/r/687/