Remove unchecked behaviour in MathUtils.cast

-use dynamic casting to ensure typesafety
-shortcircuit if the Number already has the desired type
Improve in-operation handling
Use the right generic type to reduce the amount of casts
Move the SuppressWarnings to a smaller scope
Reintegration merge

Merge branch 'master' of github.com:querydsl/querydsl into mathutils_cast
Update test
Add test for enum startsWith
Merge pull request #961 from querydsl/mathutils_cast

Mathutils cast
Merge pull request #962 from querydsl/i941-2

Improve in-operation handling
Add test exclusion
Merge pull request #963 from querydsl/enumtest

Add test for enum startsWith