Prior to this change, empty group filling worked between t1 and t2,
where t1 is the timestamp of the earliest point and t2 is the timestamp
of the last point. This patch change the behavior of the fill() to use
the query start and end time as t1 and t2, respectively. This only
happens if the user specified the start time of the query. Otherwise,
there's a potential of filling millions of millions of groups, since the
default start time of the query is really really early.
Points in the joined series should have either the columns of the left
side or the columns of the right side of the join. Before this patch
join relied on merge to order the points of the two series and then join
consecutive points together. The merge emitted the union of the columns
of the two series, which caused the joined series to always have the
union of two series. This combined with the fact that the point's values
weren't adjusted to have nulls for the missing columns caused panic when
any operation is done on the points, e.g. addition.
Fix#740, Fix#781