Core:
   - Support singletons (see types/issue for a good reason)
      - probably name them only_once and use that as the internal id!
   - remove remote_base_dir at beginning - otherwise fragments from
     previous runs may still be existing!
      -> probably also local_base_dir!
   - cdist-deploy-to: Configure more than one host
      - plus parallel mode like in ccollect

Type handler:
   - add dependency parameters to core available for every type
      --requires
      --excludes?

Stage 5 (code execution):
   - check return codes
   - abort on first error?
   - dependencies


Types to be written/extended:
   - __ssh-keys (host/user)
   - __service
   - __user
   - __file_edit
      - add_line_to_file_if_not_existing
      - delete_line_from_file
      - regexp replace (can probably cover all?)
   - __file:
      - template == [shell script] stdout
   - cron

Documentation:
   - Describe Multi master setups
   - use ssh with master socket?
      - saves connection delay for new connections: -M
      - hint: http://protempore.net/~calvins/howto/ssh-connection-sharing/
   - Describe pull architecture and requirements
      - cdist-trigger after first run from /var/lib/cdist/out/bin?
   - Different environments (production, integration, development)
      - via version control
   - Define how to raise errors in types