Allow overriding the `deploy` command with Haskell code

By overriding `deploySite` with a `Configuration -> IO ()` code, the user can execute Haskell code to deploy the site rather than shell code.

The default behaviour honors the `deployCommand` configuration field and is backward compatible.