VariableWeighting Rename

Renamed the VariableWeighting enumeration to VariableOrdering, which reflects the nomenclature used in UTS #10.

Also renamed the vw private member of the Collator class to vo to reflect this name change.
Collation Elements Retrieval Fix

Fixed a bug in the way that collation elements were retrieved from the collation element table.

When matching the longest initial substring, if the first character could match by itself or at the beginning of a sequence, the search must continue (otherwise contractions will be missed).  However, when this continued search failed, the retriever failed to backtrack to the last match, instead fetching an erroneous contraction.
Blanked Fix

Fixed a bug in the way the Collator handled variable collation elements when the variable weighting setting was Blanked.

The Collator was only checking that the previous collation element was variable before treating the current collation element as ignorable, rather than checking that the previous collation element was variable and that the current collation element is primary ignorable.
Shifted Fix

Fixed a bug in the way the Collator was generating sort keys when the variable ordering was set to Shifted.

When the variable ordering is Shifted or ShiftTrimmed, the Collator should generate sort keys as if the variable ordering is Blanked, except at the quaternary level.  The old, erroneous behaviour didn't reflect this at all, instead generating sort keys as if the variable ordering was NonIgnorable, except at the quaternary level.
VariableOrdering Setter

Added a setter for the variable ordering property to the Collator class.
ShiftTrimmed

Implemented the ShiftTrimmed variable ordering.
Backwards Fix

Fixed a bug that was causing a segmentation fault when the second level was backwards.  Iterators were being passed to MakeReverseIterator in the wrong order (i.e. the begin iterator was being made into the reverse begin, and the end being made into the reverse end, rather than vice versa).
Remove Unneeded Header

Removed an unneeded header from unicode/collator.hpp.  Previously private methods of the Collator class returned std::pair objects, but this is no longer the case, and therefore the utility header is no longer needed.
Collator Documentation

Added documentation to the unicode/collator.hpp file.
String::Compare

Added the Compare method to the String class, which uses the Collator class to compare two strings and determine their ordering.

Also added global overloads of operators <, <=, >, and >=.
String Documentation Clarification

Added a paragraph to the documentaton of String::Equals to indicate that the locale set on the string on which the method is being invoked is the locale used for the comparison.