Strict variants of all defined functions

Original lazy implementation moved to Data.Function.Between.Lazy module
which is reexported by Data.Function.Between. This preserves backwards
compatibility with older (0.9.*) versions.

New strict definitions are in Data.Function.Between.Strict module. It is
based on usage of strict application ($!) which is also used to define
function composition as:

    (f . g) x = f (g $! x)

Note that it is also possible to define it as:

    (f . g) x = f $! g $! x

Best approach would be define both variants and compare the results, but
that takes precious time.