Added static assert of std::string::value_type size
* CodepointIterator only supports UTF-8 encoded single-byte input strings
** this should prevent CodepointIterator from compiling on systems with larger char sizes while providing a helpful error message
* improved const-correctness by marking currByte (iterator dereferencing cache) and helper method arguments as const