Always use the desired LB configuration instead of using LB config from nova metadata

A bunch of model changes have been made:

- LBConfig.lb_id has been moved to LBNode.lb_id. This allows re-using LBConfig in more places without duplicating the lb_id unnecessarily.
- NovaServer.desired_lbs has moved to DesiredGroupState.desired_lbs
- AddToLoadBalancer has been renamed AddNodesToLoadBalancer and now accepts a mapping of IP addresses to LBConfigs instead of just one node configuration.

The batching of AddNodesToLoadBalancer will be done in a different PR.
Non-blocking, and doesn't have to be in this PR - `AddNodesToLoadBalancer` has had `loadbalancer_id` changed to `lb_id` - do we want to change these to `lb_id` too for consistency?