Cope with unexpected initial backend states

If the OS is booted via iSCSI, then the backend will already be in the
Connected state when the xenvif driver loads.  The backend is stable
in this state, so __FrontendPrepare() eventually times out waiting for
the backend state to change.

Fix by setting the frontend state to Closed if we find the backend in
any state other than the expected Closed, Initialising, or InitWait.
This should trigger the backend to reach the Closed state, at which
point we can continue initialising as before.

Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>