SI-7331 importers now import tree positions

There was also an issue where because of the wrapper code that the toolbox adds in order to support a wider range of string inputs than the vanilla compiler, it was necessary to adjust the positions associated with the trees generated by the compiler in order to provide a coherent interface to client code.

Furthermore, an assert was removed from emptyValDef in favour of a more lenient implementation that avoids needless guards against emptyValDef in client code.