Adds connection switching to the Nvp driver

RM10638

Updates the NVP driver to switch controllers on any traceback from the
underlying connection. It's still up to the calling code to retry, or
not, as this simply iterates a connection index and reraises the
exception from the connection. I've opted to opt any more handling in
this particular patch, as it's already a large change.
Merge pull request #284 from Cerberus98/rm10638

Adds connection switching to the Nvp driver