CFY-1651 CFY-1652 CFY-1653 CFY-1655 CFY-1656 Initial version

Implemented functionality:
- installing minion
- copying minion configuration from bluepring
- basic minion authorization
CFY-1654 Initial version of Salt API binding
CFY-1654 Added logging framework to the Salt API binding
CFY-1657 Added `highstate' wrapper to the Salt API binding
CFY-1657 Executing initial state on minion with a call to salt master

Signed-off-by: Michał Soczewka <michal.soczewka@codilime.com>
CFY-1658 RedHat (& CentOS) compatibility

* Added OS distribution detection mechanism.
* Detected systems are:
** Ubuntu,
** RedHat,
** CentOS.
Update code according to Idan's review

- add missing licence headers
- index based string formatting
CFY-1659 Port plugin to Cloudify 3.1

- import ctx instead of having it as an operation argument
- change ctx.properties to ctx.node.properties
- update cloudify-plugins-common dependency.  Since this version is
  not yet in PyPI, we had to specify github source locations.

Signed-off-by: Michał Soczewka <michal.soczewka@codilime.com>
CFY-1660 Added `plugin.yaml'
CFY-1721 Use cloudify instance id as default minion id

- move minion id out of minion config properties
- save minion id in /etc/salt/minion_id, not in minion config
- use instance.id as a default minion id if the property is not specified
CFY-1718 Added possibility to specify grains outside configuration file
CFY-1708 Code cleanup and miscellaneous fixes

- define interfaces and property defaults in plugin.yaml
- add predefined "ping" call to SaltRESTManager
- SaltRESTManager.call will convert input to a list if necessary
  (the request sent to cherrypy REST API must be a list)
- fix typo in SaltRESTManager.highstate method
- add custom options, in particular the ability to inject logger
- fix bug in logger setup
- remove temp file juggling in minion configuration
- let default installation script ensure that /etc/salt/minion file exists
CFY-1708 Cleanup: better logging and error handling

- more informative log messages
- more checks for possible exceptions
- validating context properties
CFY-1708 Cleanup: file structure reorganization

- split tasks.py: put each operation into a separate module
  to improve code readability
- rename 'saltstack' dir to 'main' (Cloudify 3.0 required it
  to be named 'saltstack', but 'main' is more descriptive)
Minor bug and typo fixes and cleaning up
Merge pull request #1 from cloudify-cosmo/devel

Saltstack plugin - beta version