Tests: AttributeFilter: fix output from similarExcludingID

Fix the similarExcludingID method in
AttributeFilterGenerationServiceSpec in a way similar to the fix in
856ebb4bd91210b6648477a0f9ed30843565003c.

A failed test would only print the first XML difference found which
would be the ID of the document - even though it's ignored for the
purpose of determining whether the test succeeds of fails.

Change the code to instead convert the simple Diff to a DetailedDiff
before calling similarExcludingID - that way, all differences captured
in the DetailedDiff are printed and the test errors are much easier to
track down.
AttributeFilter: support Regex in attribute values

Modify the AttributeFilterGenerationService to support regular
expressions in individual attribute values - relevant for
eduPersonEntitlement and highly needed for Groups.

Detect whether the value is a regular expression by checking whether it
starts with a "^" and ends with a "$" (same as what is done for Scope).

If the value is a regular expression, emit a basic:AttributeValueRegex
element instead of an basic:AttributeValueString element.

For groups, a suitable pattern is e.g.:

^urn:mace:groups.example.org:pip:association:example-association(?:|:.*)$

This follows the Java Regexp notation [1] and:
* releases the base value for the association
* all groups under that association (following a ":")
* does that as a non-capturing group.

[1] http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html

Solves #150
Solves #122
Merge pull request #166 from University-of-Auckland/develop-regexp-attr-filter

AttributeFilter: support Regex in attribute values