fix String to principal parsing

The current implementation fail to parse DN with http:// in the value of an attribute

Conflicts:

	ssl-proxies/src/test/java/org/globus/gsi/util/CertificateUtilTest.java
Update GlobusGSSException to avoid boring messages

Quite often, a GlobusGSSException is used to wrap an existing
Exception where it adds no additional meaning.

The result of this problem is Exception messages with many chained
"Failure unspecified at GSS-API level" messages.

In addition, SSLEngine suffers from the same problem, throwing an
SSLException with a message that has no meaning and with a Throwable
(that cause the SSLException) containing the meaningful message.

As a work-around, this patch skips over these semantically-null
Exception messages.

This is really a work-around, but fixing the underlying problems will
take sufficiently long that such a work-around is necessary.
Merge pull request #83 from paulmillar/fix_GlobusGSSException_v2_0

Update GlobusGSSException to avoid boring messages (v2.0)
ssl-proxies: Add support for more RDN keywords

Java's X500Principal class only supports a limited number of
RDN keywords. Real world certificates make use of many more
keywords and bouncy castle and the EMI CANL library support
these. JGlobus 2 does not. This is a regression since JGlobus
1.x.

This patch adds additional mappings when mapping to and from
the X500Principal class. The mappings are copied from bouncy
castle 2.46 and CANL.

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>

Conflicts:
	ssl-proxies/src/test/java/org/globus/gsi/util/CertificateUtilTest.java
Make GlobusGSSCredentialImpl honour its Serializable identifier.

In JGlobus v1.8, GlobusGSSCredentialImpl was Serializable.  This
feature is relied upon in application that use JGlobus.

Currently, the GlobusGSSCredentialImpl is marked Serializable, but
contains a field, X509Credential, that is not serialisable.  This then
breaks the Serializable contract and attempts to serialise the object
will fail.

X509Credential is not currently Serializable, but contains only one
field member that prevents this: OpenSSLKey.  Therefore, the
critical part of this patch makes the abstract OpenSSLKey
Serializable.

Note that the abstract class OpenSSLKey is a holder for the private
key of a credential and allows certain operations on it.  Only the
IvParameterSpec field member prevents OpenSSLKey from being
Serializable.  The patch records the byte-array used to build
the IvParameterSpec independently of the IvParameterSpec field
member and marks the latter transient.  When deserialising,
the IvParameterSpec field member is rebuilt if the byte-array
is not null.

A number of unit-tests are included to verify that, for both
OpenSSLKey and GlobusGSSCredentialImpl, an object is equal to a
serialised-then-deserialised version of that object.  For this to
work, missing equals methods were implemented and an existing equals
method was fixed.  Unit-tests are also added for these equals
methods.

Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>