Improve structure and generality

Make the gpu structures more generic, towards being able to run diverse
A bit of refactoring

Start teasing apart the big blob of state, make methods for the various
Minimal example to run compute shader

The .spv code is collatz from gfx-hal examples. This code is not well
organized and is missing metadata, but it can be a start.