Add combine_latest function

We need more events.  Here's why:
```elixir
GenEvent.sync_notify(left_event, %{:color => "red", :shape => "triangle"}) # this does not emit because there is no latest right value
GenEvent.sync_notify(right_event, %{:color => "yellow", :shape => "square"}) # this results in %{:color => "red", :shape => "square"}
GenEvent.sync_notify(left_event, %{:color => "blue", :shape => "triangle"}) # this results in %{:color => "blue", :shape => "square"}
GenEvent.sync_notify(right_event, %{:color => "red", :shape => "circle"}) # this results in %{:color => "blue", :shape => "circle"}
GenEvent.sync_notify(left_event, %{:color => "green", :shape => "square"}) # this results in %{:color => "green", :shape => "circle"}
```