NFC Unit Tests

Added more unit tests for NFC-related methods on the Normalizer class:

- A test for the trivial case (single code point input which does not decompose)
- A test for a trivial composition (input is two code points which compose)
- The case when the input is two starters and a combining mark, both starters of which the combining mark composes with (it should compose with the latter)
- The case when a combining mark and starter that compose are present, but should not be composed as the combining mark is blocked from the starter
- The case when combining marks are out of order, and there's a composition to be made
BinarySearch Unit Tests

Added unit tests for the BinarySearch function template.