Fix "file changed on disk" emacs prompt

When the buffer for an extracted source file already exists,
just switch to the buffer for better performance.
Add unit tests

Test edge cases of sourceFileCandidates when "$"'s are involved
Update documentation of :reference-source-roots
Merge pull request #406 from edani/source-jars-master

Fix outstanding issues with source jars - 2.9 branch