Major refactor. This should make it easier to maintain.

Hi @soimort,
In this branch I have moved all kana-to-romaji mappings outside of the code while making sure to preserve the exact behavior of the existing API. I didn't make any attempt here at fixing the issues I recently opened - this is just laying the ground work for future improvements.

Notes:
1. I introduced a compat.py module for P2/P3 compatibility code
2. The only function I've had to rewrite from scratch is `to_hepburn`. The approach hasn't changed fundamentally though, and all tests continue to pass.

Here is the Travis report: https://travis-ci.org/blagarde/python-romkan/builds/18067424
I look forward to your views/comments.

All the best,
Baptiste