The config for each bounce type can now contain a map of counts vs
durations. This allows a tiered approach to blocking email actions based
on bounce history.
For example:
```
{
0: 5000,
5: 20000
}
```
This tier mapping is translated as "more than 0 in 5 seconds" or "more
than 5 in 20 seconds". If either condition is true, the appropriate
error is thrown.
The throw error also now includes the timestamp of the latest bounce, to
allow for reporting of when exactly that bounce was recorded at.
Closes#1893
* feat(logging): Log email template header if avalible
* feat(logging): Add flow logging and unit tests
* feat(logging): Remove flowEvent logging
* feat(logging): Add logging of bounce type
* feat(logging): Fix busted test case