Split code in to sections

We have two sections now, one for Maybe related stuff and one for
Either.
Reorder functions to simplify code reading

Functions built on top of other functions defined in the same module are
introduced later.
Renaming lift{Either,Maybe}M -> from{Either,Maybe}M
Introducing from{Either,Maybe}A functions

These functions are applicative variants of from{Either,Maybe}M:

fromMaybeA
    :: (Applicative f)
    => f a
    -> Maybe a
    -> f a

fromEitherA
    :: (Applicative f)
    => (a -> f b)
    -> Either a b
    -> f b

Additionaly we now use these functions for definition of
from{Either,Maybe}M if base >= 4.8 which will introduce Applicative
Monad Proposal (Applicative becomes super class of Monad).

Definitions of from{Either,Maybe}A are strict in {Either,Maybe}
parameter and so from{Either,Maybe}M had to be changed accordingly.
NoImplicitPrelude language extension
Updating year range in copyright
Listing used language extensions
Setting default language to Haskell2010