Better error handling for empty values

Blocks (e.g. tasks, handlers etc) can be empty lists
Modules with no arguments (e.g. setup) are handled correctly

Fixes #30
Improvements to allow tasks to have args

Breaking change, so updated version to 2.0.0. Fixed the two built in
rules that were affected by the breaking change.
Various fixes to README.md
Added missing include files to allow the include.yml example to work

Fixes #32