Add lazy mix.exs options

Works for Ecto:

```elixir
defmodule Ecto.Mixfile do
  use Mix.Project

  def project do
    [ app: :ecto,
      version: "0.0.1",
      deps: deps(Mix.env),
      env: envs,
      name: "Ecto",
      elixir: "~> 0.10.3-dev",
      source_url: "https://github.com/elixir-lang/ecto",
      docs: fn ->
        [ source_ref: System.cmd("git rev-parse --verify --quiet HEAD"),
          main: "overview" ]
      end ]
  end
end
```

Also added support for string `:main` option so your main can be the readme or the overview.