Account for instances that have not yet been registered. Fixes #5076

This pull request fixes an issue where if an instance had never been registered it would throw an error when first trying to register with a load balancer.

There are also a few other cleanups in here:

* If wait is set to `False` there's no reason to check the initial instance state.
* There was another bug where when an instance is first registered with an ELB, it enters a "pending" state. It does not seem to do that if the instance has previously been registered with an ELB. Accounting for this state proved annoying, since AWS does not return a clean status code from an instance health check that indicates this state.