Shuffle gateway logic around for improved reconnecting.

Fixes #957
Changelog re #957
Merge branch '1.5' into 1.6

Conflicts:
	docs/changelog.rst
Merge branch '1.6' into 1.7

Conflicts:
	docs/changelog.rst
	fabric/network.py
Merge branch '1.7' into 1.8

Conflicts:
	docs/changelog.rst
	fabric/network.py