Put one-Shot info in the interface
Add GHC.Prim.oneShot

to allow the programer to explictitly set the oneShot flag. This helps
with #7994 and will be used in left folds. Also see
https://ghc.haskell.org/trac/ghc/wiki/OneShot

This commit touches libraries/base/GHC/Event/Manager.hs (which used to
have a local definition of the name oneShot) to avoid a shadowing error.
Use oneShot in the definition of foldl etc.

This increases the chance of good code after fusing a left fold. See
ticket #7994 and the new Note [Left folds via right fold]
Add oneShot demo file

(if you remove {-# GHC_OPTIONS -fno-call-arity #-} then both functions
have the same Core).

Obviously, this patch is not meant to be merged.