Enable Cluster Node to work easily without Manager

- Replace --manager-ip and --manager-port options with --gossip-seed
  <endpoint> (can be used multiple times to specify other nodes in a
  cluster. This can also be used to point to a manager if you are running
  one.

- Remove Fake DNS, replace with --use-dns-discovery (on by default), can
  be disabled via config or on the command line with --use-dns-discovery-.

  This means that the gossip seeds are used rather than a DNS lookup for
  other cluster nodes.

Allow specification of JSON config per ProgramBase

- Change defaults of "config.json" to "clusternode-config.json",
  "singlenode-config.json", "manager-config.json" and
  "testclient-config.json".

- Add default "manager-config.json" which disables DNS discovery
  (desirable for local testing)

Change MinFlushDelayMs to TimeSpan
Merge branch 'without-manager' into dev

Conflicts:
	src/EventStore/EventStore.ClusterNode/ClusterNodeOptions.cs
	src/EventStore/EventStore.Core.Tests/Services/ElectionsService/ClusterSettingsFactory.cs
	src/EventStore/EventStore.Core/Cluster/Settings/ClusterVNodeSettings.cs
	src/EventStore/EventStore.Core/ClusterVNode.cs
	src/EventStore/EventStore.Core/Services/Gossip/NodeGossipService.cs