UP-4177 Add groovy-based duplication of username to user.login.id and uid if not present

https://issues.jasig.org/browse/UP-4177

Upgrades to person-directory 1.6.0 to enable groovy-based scripts or classes in personDirectoryContext.  See https://github.com/Jasig/person-directory/blob/person-directory-parent-1.6.0/person-directory-impl/src/main/java/org/jasig/services/persondir/support/GroovyPersonAttributeDao.java#L38

Though could be done with PersonDirectory's StringFormatAttributeRule, this approach is MUCH GROOVIER!

Additional benefits to uPortal:
- uportal-war build process now support groovy classes AND Groovy unit test classes!!!
- can use groovy scripts in personDirectoryContext.xml (see link above)
This class doesn't implement `IPersonAttributeDao`, it implements [`IPersonAttributeScriptDao`](https://github.com/Jasig/person-directory/blob/master/person-directory-api/src/main/java/org/jasig/services/persondir/IPersonAttributeScriptDao.java#L47) , which does not specify the meaning of `null` on `getPersonAttributesFromMultivaluedAttributes()`.  Right?  

This code seems to want a `null` return value to mean something.  [`IPersonAttributeScriptDao.getPersonAttributesFromMultivaluedAttributes()`](https://github.com/Jasig/person-directory/blob/master/person-directory-api/src/main/java/org/jasig/services/persondir/IPersonAttributeScriptDao.java#L47) should agree with and document that meaning.