Refactored Network.Fetch() with FetchOptions

Changed the signature to `Network.Fetch(Remote, FetchOptions)`.

As of #536

> optional parameters should be grouped in a xxxOptions type.

`Network.Fetch()` has currently 5 optional parameters, and a sixth one (`RefSpecs`) will be introduced in #572. I think a `FetchOptions` class is by far more clear.

I'm not sure if we should keep tests for the obsolete syntax.