Compile to a build dir instead of the source dir
Allow points in the filename
Fix java compilation for small projects

It seems best to always call the compiler from the source directory and
prefix the files with the package name they are in.

This commit respects this, by setting the working directory and handling
the different feedback
Add a MainMethodFinder to find the main method in the tree

For now it only supports finding a Java main Method, but it
could be
extended for other languages.

This is needed to run a compiled program later.
Clear old compiler/export messages before adding new ones
Add an ExportMapContainer in Export for use in specific exporters
Change MainMethodFinder after review
Change ExportMapContainer to only contain TextToNodeMaps
Fixes issues discussed in the Codereview
Add a list of managed files in TextToNodeMap
Add an ExportMapContainer to JavaExporter
Use ExportMapContainer instead of passed in arguments
Add a visitChildren method to MainMethodFinder
Stop after the first match of a main method. In the default
implementation we would miss the main method if it is not the last
child.
Add a JavaRunner
This is very immature, and blocks Envision while a programs runs.
We need to figure a way around this.
Add a JavaRun command
Refactor: Remove get method prefix, remove spaces, remove old comment
Fix BoxOverlay constructors to always initalize the click handler
Add some icons for message overlays
Add a new message overlay
Use the new message overlay for compiler messages
Add a missing override