JSON serialization of RegisteredService into LDAP

Handles https://github.com/Jasig/cas/issues/681

I striped down the `DefaultLdapMapper` so the entire service definition is persisted into a single attribute as JSON. There are setters that allow extending the serializer, and I also modified the tests to adjust the objectclass required. Some classes had to include getters for serialization to properly work. 
This is really an artifact of how LDAP attributes are handled in Java. For better or worse attribute values can be either a String or a byte[]. The ldaptive API provides access to values for both types with LdapAttribute#getStringValues() and LdapAttribute#getBinaryValues(). These methods detect the underlying type and convert it appropriately. So if you've got a binary value and you ask for it as a String, ldaptive will Base64 encode it. This seems to be the least objectionable format as this is what the LDIF spec does.

For your code specifically, I'm not sure what you're trying to accomplish. In the nominal case binary values shouldn't be represented as String. You can obviously do it, but it won't be a readable string. (i.e. jpegPhoto). I think a more useful block of code would be:

```java
if (attr.isBinary()) {
  // handle binary attribute, what's wrong with base64?
  final byte[] b = attr.getBinaryValue();
  v = new String(b, Charset.forName("UTF-8"));
} else {
  v = attr.getStringValue();
}
```

But I'm not sure why you don't want a base64 encoded value in this case.