Further work on Pica emulation

Lots of not-directly-related changes here, but I didn't feel like creating 5 pull requests for this.

* GSP holds a public framebuffer info structure which applications may modify, and reflects those changes to the GPU registers. Citra now handles this correctly. Cf. a0b3d58, 958e00f and 384ecd2.
* A number of utility functions have been added for dumping input geometry, vertex shaders and textures. Cf. 5116479, 32ce87a, 585f415 and 465a99d.
* First steps towards a feature akin to Dolphin's fifo logs have been made. It's called Pica tracing for now. Cf. 866f594.
* Parameter masking is now implemented in the command processor. Cf. 11f303f.
* A bug in the vertex shader has been fixed and a minor feature been implemented. Cf. 335d219.
* A number of design changes have been made to the vector library. Cf. 57911b6.
* The framework for emulating the texture environment has been laid out, with a basic subset being emulated already. Cf. 87432b0.
* The icing on the cake is texturing support, implemented in 72da1c1.

TODOs:
* [ ] Check Windows compatibility
* [ ] Take another look over the code (there are a few rough edges, still)
* [ ] Address review comments

Note that this branch adds a dependency on libpng for texture dumping. If I should use something else instead, porting over the code shouldn't be a big problem.