librender: implement proper binning algorithm

- Modify schedule to separate spawn and join functions
- Add SliceArray class to store per-tile triangles