be more conservative in scala versions supported
missed a few lenience cases
tests for edge cases in lenient version strings