Refactor helpers date logic for clarity

- Used the power of maths to determine `second_wednesday_of` a given month/year.
- Used recursion in `next_event_date` to keep moving date forward.

Additional notes:

I am not sure what `next_tb_event_date` is doing. `current_date` is never advanced in the loop so it will cause a stack overflow if the `next_event_date`'s month is one of `1,4,7,10`.