fix #222: add support for AD UPN bind DNs

This fixes #222 and adds basic support for Active Directory UPN bind DNs (both modern and legacy).

Examples of AD UPN bind DNs that this will support for those who are unfamiliar:
* modern - `joeuser@AD`
* legacy - `AD/joeuser`

The command line utilities support AD UPN bind DNs.

When using the API you will need to *explicitly* enable support for AD UPN bind DNs: `parseDN(name, allowActiveDirectoryUPN)`