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 soon.