Change sort representation to class

- changed sort representation from String to class
- modified API's accordingly
- replaced string literals with constants
- cleaned up a lot of mess 
```Bottom``` is actually only used in the Java backend's Bottom class. @andreistefanescu should I use ```#Bot``` instead?