deploy: Let snf-deploy create ddns and .ssh dirs

These dirs are needed to store ddns and .ssh files created by
snf-deploy keygen. All these files should reside in template dir
since are going to be moved to target nodes.

Add those dirs in .gitignore since we don't want to track any temp
files created if we run snf-deploy from source.

Update Copyright dates.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy: Add state dir and use it for status

Introduce new setting in [dirs] section of deploy.conf: `state`.
Override this setting with `--state-dir` option (useful when running
deploy from source).

This dir is currently used to store snf-deploy `snf_deploy_status`
file, that shows which components on which nodes have been
installed.  Do not update this file if `--dry-run` is used.

Additionally introduce `--templates-dir` option that overrides
setting `template` in [dirs] section of `deploy.conf`.

Note that override options do not modify configuration files.
Changes are done in execution context of each snf-deploy command.

To run snf-deploy from source use:

$ python setup.py develop
$ snf-deploy keygen -c conf -t files -s /tmp
$ snf-deploy all --autoconf -c conf -t files -s /tmp

Update Copyright dates too.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy/ci: Small refactor regarding ssh/ddns keys

In case `keygen` founds keys it does nothing. If `--force` is passed
then it re-creates keys.

Currently ci installs deploy package during `build` command.
Move keygen action from deploy_synnefo() to build_synnefo().
Do not use `--force` so that deploy can be re-entrant on any level.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy: Remove old fabfile

..and rename new one from `fabfile2.py` to `fabfile.py`.

Update Copyright dates too.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>