Handle source/testSourceDirectory more robustly.

We can't just slurp in all sources under src/main and src/test because that
does undesirably things like assume we want to compile source files found in
src/main/resources or whatever. If source files are outside of the usual
places, they should be ignored.

Maven hardcodes things for Java, and then other plugins try to muddle through
from there. What I'm doing is not "correct" (whatever that means when
correctness is defined as 'however half a dozen Maven plugins behave') but it's
likely to do the right thing in most circumstances.
Wire up execClasspath.