Properly handle backend add.

- validate backend before adding,
- warn with proper msg if failed backend already added

We need to make sure that the user dict is updated before validating.
The same stands for removing the backend after checking that libcloud
cannot connect.