NX-633: Preserve case on npm package requests

Some npm packages contain capital letters (e.g. StringScanner), and so
converting package requests to lowercase causes requests for these
packages to fail

PackageCoordinatesTest UT fixed too to pass.

Upstream PR
https://github.com/georgy/nexus-npm-repository-plugin/pull/15

Squashed commit of the following:

commit 513331c23dd96fdbac5b757a101d594c8ff58a6b
Author: Steve Carlucci <scarlucci@sonatype.com>
Date:   Tue Aug 26 09:06:05 2014 -0400

    Preserve case on npm package requests

    Some npm packages contain capital letters (e.g. StringScanner), and so
    converting package requests to lowercase causes requests for these
    packages to fail
NX-634: Construct tarball url for beta versions correctly

Upstream PR
https://github.com/georgy/nexus-npm-repository-plugin/pull/17

Squashed commit of the following:

commit 01aa580292e0f1a7b345a922e47388feea69b266
Author: Steve Carlucci <scarlucci@sonatype.com>
Date:   Tue Aug 26 09:18:48 2014 -0400

    Construct tarball url for beta versions correctly
NX-684: Registry root expiration fixes

Changes:
* NX Core handled NPM MD as expired (as it sees it as coming from localstorage/cache)
* NPM Proxy MD service had a bug, that considered NPM reg root always as expired as it was incomplete
* Assure that registry root update does not happens concurrently
* improved logging with some TRACE logs
* added IT ensuring that once cached, registry root is not re-fetched
* IT improvement: fixing path recorder lifecycle

Upstream PR
https://github.com/georgy/nexus-npm-repository-plugin/pull/18

Squashed commit of the following:

commit c18e6969749ad225dd4cbf2e89b9251e20847d64
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Wed Aug 27 12:55:08 2014 +0200

    NX-684: fixing path recorder lifecycle

    As it was created when mock registry was. Now it's re-created
    per each start, to avoid possible interleaves of recorded data
    from previous runs.

commit 4f1a8146b2c11453932421f493296929fe64ead7
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Wed Aug 27 12:48:08 2014 +0200

    NX-684: Assure that registry root update does not happens concurrently

commit 4fdc06a47e10d7c363a4c1f94867e2043447d3ff
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Tue Aug 26 15:52:21 2014 +0200

    NX-684: Registry root expiration fixes

    Multiple problems fixes and improvements added:
    * NX Core handled NPM MD as expired (as it sees it as coming from localstorage/cache)
    * NPM Proxy MD service had a bug, that considered NPM reg root always as expired as it was incomplete
    * improved logging with some TRACE logs
    * added IT ensuring that once cached, registry root is not re-fetched
NX-685: Improve "incomplete" document detection

Instead of testing for "latest", "stable", etc just
accept the fact that versions map is Map<String, String>
and in that case create incomplete documents for all entries

This fixes the NX-685, as it was caused by the problem that
document was not detected as incomplete, hence, on package
root fetch the document was not fetched from registry to
have the non-incomplete version.

Also added some TRACE logs

Upstream PR
https://github.com/georgy/nexus-npm-repository-plugin/pull/19

Squashed commit of the following:

commit 0dd0415d3c271ca35c41870bd3c2bb1a9bfe3877
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Wed Aug 27 12:27:10 2014 +0200

    NX-685: Added diagnostic logs

commit b05643dc5f3c7ee433a72d008ea8861763b1d8cf
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Wed Aug 27 10:39:46 2014 +0200

    NX-685: Simplified, scope and javadoc

commit b02d384ea5c1c119652bf9073ea2c14c4719b472
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Wed Aug 27 10:33:56 2014 +0200

    NX-685: Proper fix and UT for tag handling and shrinking

    Changes:
    * proper shrinking implemented, no need for "dist-tags" and/or "latest" tag existence
    * renamed shrink method to better reflect what it does
    * added UT

commit 310f4a6d62187adcc39f9942a7c5158a45798d04
Author: Tamas Cservenak <tamas@cservenak.net>
Date:   Tue Aug 26 21:23:12 2014 +0200

    NX-685: Improve "incomplete" document detection

    Instead of testing for "latest", "stable", etc just
    accept the fact that versions map is Map<String, String>
    and in that case create incomplete documents for all entries

    This fixes the NX-685, as it was caused by the problem that
    document was not detected as incomplete, hence, on package
    root fetch the document was not fetched from registry to
    have the non-incomplete version.
Merge branch 'sonatype-master' into nexus-2.10.x