Partial solution to https://github.com/cwi-swat/rascal/issues/208

When doing a replacement in a visit we now do a subtype check on static
types. However, the type of the result will not always be correct since
it uses the dynamic type. It seems that an overhaul of the traversal
code is needed to get this right (replacing IValues by IResults).
Merge branch 'master' of https://github.com/cwi-swat/rascal.git