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)