Add missing typing rule for Fresh()
Add missing type coercion rule from a map type to a compatible semantic compoment.
Add compilation support for fresh.
Now sort the semantic components

The semantic components (readables, changeables) are now sorted lexicographically. This makes the order of the semantic components relatively more predictable.
All-to-Java

Add a strategy and entry in transform menu for combined processing from normal DS all the way to generated Java interpreter.
Fix issue where injections did not contribute to execution method

Example:

sorts
  A
  B -> A

arrows
  A -foo-> Int

The issue that this commit fixes caused constructors C of sort B to lose reductions over the arrow *foo*
Codegen for map selection.
Fix an issue which allowed same semantic component to appear both in readables and changeables of an arrow

If some of the premises in a reduction used semantic component A as readable while others as changeable, then sometimes the semantic component A appeared in both the changeables and readables positions.