Added documentation to CharacterSet methods and renamed characterSet param of methods that take another CharacterSet to other to prevent confusion.
Added tests for the union, intersection and subset methods.
Implemented difference method.
Added a test to check if a characterset is considered a subset of itself.
Changed encodeCodePoint, extractHighSurrogate and extractLowSurrogate to instance methods and marked them as private.