Reimplement java backend builtin list

Provides important support for proving several kernelc examples that mention I/O cells.
Yes. I have thought of this. However, the ```baseTermTypes``` is not used anywhere right now. And I am not very sure about how it's going to be used in the unification algorithm. So I would like to postpone this decision until I start to prove the examples involving IO cells. I have added a TODO item to keep track of this.