Update Checkout and Merge options

Checkout methods now use CheckoutOptions

Merge now takes several options:
  - Option to specify what is checked out for file conflicts.
  - Report CheckoutProgress and CheckoutNotify
  - Option to specify MergeFileFavor

Updates for code review feedback
Make Network.ListReferences(Remote) accept Credentials

Add CanListRemoteReferencesWithCredentials() test.

Fixes #647