use std::swap instead of C-style variable swap
transfer copyright to my employer; relicensed (Apache2)
type switch (Unicode/bytes) + test
ignore Vim/Cython files