Cleanup GPU headers and add a GPU debugger with command list parsing capability.

On the general side of things, this adds a header called `register_set.h` in common, which I consider to be a nice way of defining register sets. An example of how this looks in the real world is given in `video_core/pica.h`. If other people don't like it, I don't care too much about dropping it, but I personally like it and am eager to see how it performs in long-term usage.

Emulation-wise, nothing really has changed; I added a number of GX commands, but most of them don't do anything, and those which do (`GXCommandId::SET_COMMAND_LIST_LAST`) only redirect their commands to other unimplemented code layers (`GPU::Write32()`.

Debugging-wise, two new docking widgets are added: A log of all GX commands issues by a program and a structured view of the command lists used (ordered in a tree view by commands per command list).

I am not sure how well the `RegisterSet` stuff compiles on Windows. Chances are it won't. It would be cool if someone could test Windows build since I haven't yet set up citra on my Windows box :)