More aether plugin fixes

Recently I've been working with some bundles and I'm trying to use existing Nexus repositories as remote repositories using the AetherRepository plugin.  I've run into a couple of small issues described below:

Issue 1 - Sometimes artifact versions in a maven nexus repository will have truncated versions like "2.5" or "3.0", but once these versions are read from the .bnd file they will be converted to their proper OSGi equivalent like 2.5.0 and 3.0.0.  But when these bundles are fetched from remote, the "version" string that is used is the full osgi version, not the original truncated string.  So instead of using javax.servlet:servlet-api:2.5 (which exists on maven central), it will use javax.servlet:servlet-api:2.5.0 (which doesn't exist).  

My proposed solution is to allow aether repository to use the "strategy=exact" attribute to mean that instead of the OsgiVersion equivalent version, it would use the exact version string specified in the -buildpath.  See 98c7423de3ef691b0024b15de79e371dde7f093c

There may be an existing way to handle this or a better way, or overriding the strategy in this manner may be inappropriate.

Issue 2 - When a remote bundle download is attempted and if there is a resolution exception (artifact not found, etc) the aether repository get() is throwing an uncaught exception and is causing all further attempts for resolution.

My proposed solution is to just wrap the artifact download with a try/catch and return a null file is the download failed.  See 318433febef19af6467f19811067d556cdd8400c

Issue 3 - AetherRepository uri handling doesn't support port numbers, simple fix here: fa325e8617d77bed64bf0251154bb5475310effe

Also I've added unit tests for these fixes along with the previous fixes that I've sent in here: 8e596e9c1b789868be0fbd819bf59722deca4d38