Before this commit, executions of `distributed_exec` was always
transactional and this could not be disabled. This cause problems when
executing statements that cannot be executed inside a transaction, such
as `CREATE DATABASE`.
With this commit, we introduce a parameter `transactional` to
`distributed_exec` that allow non-transactional executions on data
nodes. The parameter defaults to `TRUE`. Generates an error if
`distributed_exec` is non-transactional and inside a transaction.
It also changes `distributed_exec` to be a procedure, which better
matches it's usage (it returns `VOID`).
Closes#1660