Put State# into GSnocVector

This trick (not sure if it's a safe one yet) allows avoiding the
overhead of unsafe(Dupable)PerformIO without going fulll with
inlinePerformIO. It *does* work around haskell/primitive#11 at the very
least.