CI, tests and code cleanups

No functional changed.

 * l2hash code cleanups
 * moved tests to separate dir
 * added cpp and python binding tests to ci
 * added clang build to ci
 * spelling and comments