prevent keepAlive from being GC'd early.

The following program is supposed to increment forever, but without this
fix and with "ghc-7.8 -O", the program instead repeats the same number
after about 97. This occurs because sampleKeepAlive gets garbage-
collected, causing its associated finalizer to run early and leading
later events to be ignored.

    import Control.Concurrent
    import FRP.Sodium

    main :: IO ()
    main = do
        (int, changeInt) <- sync (newBehaviour (0 :: Int))

        let loop n = do
              x <- sync $ do
                     changeInt n
                     sample int
              print x
              threadDelay 10000
              loop (n+1)
        loop 0
Merge pull request #17 from gelisam/fix-keepalive

prevent keepAlive from being GC'd early.