Add UnwrapSt class

Sometimes `Co/Pointed` requires a bit of magical reasoning in use(e.g. what's with the `NonEmptyList` instance). By defining our own specialized class we avoid both the semantical problem, `pointed`'s dependencies and also make it obvious that new state types should, if applicable, provide instances.