Reorganise all the includes.

- Moved the various hardware state structs to their own headers
- Eliminated dependencies on sgherm.h with typedef struct
- Move other things to appropriate includes
- params.h can taste the pavement