Add a TailProducer class that is anything we can validly end a graph on.

Add a user supplied function for us to ensure we don't produce too many nodes(online regression).

Adds Left join to our generated graphs