AS-288: Check deleted CLB when adding node (review)

This will reduce unwanted retries which will in-turn succeed invalid load balancer tests. I have factored out the checking of deleted CLB in separate function and used it in add and remove node code.
I think this comment got lost somewhere so just to be sure: the choice for not grouping messages and codes in a single structure (since they're semantically coupled) is intentional, because it'd be tricky to write, right? How about iter(messages) as above instead of pop(0)?

(I'd actually even consider a kwarg hack because it wouldn't remove access to the underlying list, which is the real reason you wouldn't want to mutate it:

```
lambda it=iter(messages): next(messages)
```
... as opposed to `messages = iter(["whatever"])`

but I appreciate that's trading one hack for another :)