fixed buggy createM3FromDirectory

createM3FromDirectory was not working properly.

This code ...
-----------
result = composeJavaM3(project, { createM3FromFile(f, javaVersion = javaVersion) | loc f <- find(sp, "java") });
-----------
used to be in the for-sourcePaths loop reassigning the result variable each time. Instead of creating a union of all the M3's it would just end up returning the last M3 created using createM3FromFile.

This fix simply collects all M3's discovered on all sourcePaths into a set. With this set (m3s) a JavaM3 is composed.
pushed for loop into comprehension

optimalisation as per requested in thread (https://github.com/cwi-swat/rascal/pull/586)
Merge pull request #586 from jeroenpeeters/master

fixed buggy createM3FromDirectory, pull request by jeroenpeters. Thanks!