Refactor kind-info handling

In anticipation of upcoming support for SFloat and SDouble; tidy up how
kinds are kept track of internally.