Cleanup code and update README.md

README.md:

    Update README.md.

scmc.cabal:

    Add flags for ghc and use the prefered way for declaring extensions.
    Add version restrictions to dependancies according to cabal usual policy.
    Purely cosmetic: add fields to scmc.cabal.
    And change cabal version to >= 1.15.

Cleaning/Refactoring:

    Remove unused imports.
    Remove useless `$` and parentheses.
    Remove trailing spaces.
    Use `_` instead of unused variables.
    Rewrite some expressions with liftM or fromMaybe.
    Rewrite some functions to use partial application.
    Use literal patterns for some cases.