Refactor CLI and Client to accept callbacks

- Success and failure callbacks are now passed to the attach method of the
client from the CLI.
- Removes all custom errors as the one raised by Fog are already pretty
self explanatory.
- Moves validations of user input into the Cli, where we can ask user for
more input or simply exit the program with a message.
- Cleans up related spec as well.
End of refactoring
Fix user input not being a string in spec
Fix loose attitude
Added test when detaching instances not attached to any ELB
Merge pull request #2 from HouseTrip/confident-refactor

Refactor Client and Cli to use callbacks