Abstraction Improvements & Code Refactoring

  This commit changes the basic way of how ankus stores the abstraction of
  node(s) which results in lot of code refactoring.

  Users can now change the deployment information in the config file and
  will be able to use `deploy --reload` to apply the deployment changes,
  instead of using `deploy --add-nodes --count 2 --roles worker` (or)
  `deploy --add-nodes --hosts blah.ops.com blah2.ops.com --roles worker`.
  Also, `--reload` is designed to be idempotent in nature.