[MONDRIAN-1949] Add generic method to identify a database product.
Use the new static method on the Dialect as the fallback means to
determine the database product. Take advantage of equalsIgnoreCase
as it does null checks, and it handles case properly, and optimizes
for ordinary equivalence. Add NuoDB Dialect support, and related
documentation.
[MONDRIAN-1837] fixed issue with ignore unrelated dimensions when
unrelated dimension appears in slicer.  cherry-picked from d2f9690
Merge pull request #318 from kurtwalker/MONDRIAN-1837

[MONDRIAN-1837]
[MONDRIAN-2010] Fixed schema validation check, Mondrian automatically sets
the key attribute to single attribute dimensions.
[MONDRIAN-2010] fixed AccessControlTest.testUnionRole(), with the removal
of Access.RESTRICTED in Lagunitas, Another approach was necessary for
unioning of HiearchyAccess.hasInaccessibleDescendants()
Merge pull request #319 from wgorman/lagunitas

Lagunitas Test Fixes
[MONDRIAN-1869] - avg measures need to be aggregated in SQL similar to distinct-count. You cannot aggregate avg from separate queries because the count for the denominator is lost by then.  cherry-pick from f1d5991
Merge pull request #321 from kurtwalker/MONDRIAN-1869-lag

Mondrian 1869 lag
[MONDRIAN-1519]  Median from set of one member is returned as 50% from measure value.

In the case of single value arrays, the percentile function was returning p*value, which is inconsistent with most other implementations of Percentile (e.g. Excel's).
(cherry picked from commit c3956f2)
Merge pull request #325 from mkambol/lag1519

[MONDRIAN-1519]  Median from set of one member is returned as 50% from measure value.
[MONDRIAN-1998] Forward-port of the fixes for MONDRIAN-1998. Commits 707bf57955897ef4b2ea64dece184796d89c8f22 20a88f96e2486cd23bab8bca58c2dde186b285f2 29000ebd46be96b75e91724d80659459fca3659f 378a968651959f2ef1ec641ad1966b958ad7c3aa f8b96c28ad2b36149ea41155c50e1579f7be3ea8
Merge pull request #263 from rbuck/lagunitas

[MONDRIAN-1949] Add generic method to identify a database product and NuoDB support
[MONDRIAN-2072]  When a virtual cube uses a compound slicer with unrelated dimensions, invalid results occur

This change is a merge of Will's commit (https://github.com/wgorman/mondrian/commit/953037d879bba35a31f330d8e71d6fbab5b3ae50),
plus tests to verify functionality.  The commit also addresses the case where a measure is present in the slicer, which was
not covered by Will's original commit.
(cherry picked from 2301e014d)
Merge pull request #328 from mkambol/lag2072

[MONDRIAN-2072]  When a virtual cube uses a compound slicer with unrelated dimensions, invalid results occur
[MONDRIAN-2107] Incorrect segment rollup with overlapping segments.

There was the possiblity of creating invalid segments if rolled up segments overlapped and/or were unconstrained for one or more columns.
This commit adds checks for cases where more than one segment has an unconstrained column (i.e. requestedValues=null) and merges the value sets.  This avoids
"losing" values.  Also added verification that cells being added to a rollup haven't already been added (if there's an overlap).
(cherry picked from 5800587)
Merge pull request #330 from mkambol/lag2107

[MONDRIAN-2107] Incorrect segment rollup with overlapping segments.