Addition of a "martini.RunConfig" optional struct for "Run()" customization

Hi,

I was thinking that it could be nice to allow the customization of the binding address and port of a Martini instance with a dedicated ```RunConfig```.
With this PR the previous behaviour remains unchanged: the default port is still 3000, and can be overridden with the "PORT" Env variable. The ```Run()``` function can still be used as-is, without any argument.

I have just added an optional "ADDR" Env variable, and the possibility to use an optional RunConfig with Martini:
~~~ go
m := martini.Classic()
mConfig := &martini.RunConfig{Addr: "127.0.0.1", Port: 1337}
m.Run(mConfig)
~~~

Do you think it could be useful? Would you recomend another way of handling it?