Fix #138. Allow decisions to return functions

If a decision returns a function which is expected to take no arguments
then the function's return value is used as the updated context.

This allows to circumvent the deep merge of maps and lists which context
updates do by default.