Use implicit ExecutionContext for iteratees (#807 part 3)

- Removed static Iteratee ExecutionContext, relying instead on implicit ExecutionContext passing instead. This makes things a lot simpler from a configuration/lifecycle point of view, as there is no longer a global ExecutionContext that needs to be initialised and configured somehow. Everything is simply provided by the user of the iteratee API.
- Now that ExecutionContext arguments are implicit (completed in part 2 - #1087), got rid of explicitly passed ExecutionContext arguments in the framework and in samples.

Previous parts:
- #807 part 1: #996
- #807 part 2: #1083