Simplify `MessageForwarding` entity

So far, `Messageforwarding` has been a trait that requires a
`ExchangeInfo` and a `MessageGateway` provided by its children. It
is used by actors collaborating in the exchange to simplify the
message forwarding.

There is no good reason to use inheritance there. As there is no
good reason to couple the message forwarding to the `ExchangeInfo`
object.

This change turns the trait into a regular class, which receives
the counterpart and the broker connections from its constructor. Now
`MessageForwarding` can be used by composition rather than inheritance.
Add Graphviz directory in doc/ with an initial actor supervision graph
Merge pull request #170 from apoloval/doc/graphviz

Add Graphviz directory in doc/ with an initial actor supervision graph
Merge pull request #169 from apoloval/task/39

Simplify `MessageForwarding` entity
Simplify wizard step interface
Allow wizard steps to disable the “next” button
Implement PasswordStepPane
Merge pull request #171 from sortega/task/40_wizard_steps

Implement PasswordStepPane
Add execution context for updating ScalaFX nodes
Add CredentialsTester trait
Implement OKPayCredentialsStepPane
PR feedback
Merge pull request #172 from sortega/task/40_wizard_steps

Implement OKPayCredentialsStepPane
Generate QR code images
Implement TopUpStepPane
Make the wizard a non-resizable dialog
Move dependencies out of the constructor in the exchange classes
Merge pull request #174 from sortega/task/40_wizard_steps

Implement TopUpStepPane
Merge pull request #173 from edrevo/remove-constructor-deps

Move dependencies out of the constructor in the exchange classes