Arabic Normalizer (c++)  + Buckwalter Romanization Converter

(This pull request is for reviewing)


I'm not really happy with using a std::map here.  The worst issue is that it will add a startup overhead for initialising the map (and probably for all users of the library, even those not using arabic).  Also, even if this were marked as `const`, the compiler won't put it in the read-only data section, so each process will have its own copy.

But I think let's not get side-tracked into that for now - once we have working algorithms and good test coverage, optimising how the data used by the algorithms gets stored can be done.