change method name hasPropertyPathWithValue -> hasPropertyPath
created CastMatcher
clean up generics, helped by new CastMatcher
prepare for travis