Add declarative module

Declarative provides a simple way to describe workflows as json files.
This is an import from a private project and will need an heavy
documentation effort to be usable. Plus, yaml format support will be
added soon.