ui: Use FreeType fonts as a default for now
ui: Implement simple rectangle drawing

Also slightly refactor the implementation to reduce the amount of conversions/transformations
gfx: Prevent texture operations from clobbering the slot 0 binding.

It looks like we can just use TEXTURE0+79 since we’re guaranteed to have 80 combined units.
ui: Add non-antialiased rounded rectangle drawing
ui: Use indexed triangle lists.

This reduces the data that needs to be transferred and makes rendering complicated shapes slightly easier.