refactored string distances into building blocks that can be more easily reused
Added XZ compression versions of CDM and NCD, only added if XZ is installed
added in_cache method to caced string distance class