BUG: GH3317 Fix frequency inference to be automatic in a DatetimeIndex if freq is not specified during _ensure_index

PERF: remove automatic downcasting, instead do on-demand via 'downcast=infer'

TST: fix up failing tests

CLN: reindex/fill in internals moved to core/internals/Block/reindex_items_from

PERF: don't automatically downcast with a float block

BUG: GH3317 reverse prior fix in tseries/offsets, to change slightly the multi reindex

TST: identical index tests

BUG: GH4618 provide automatic downcasting on a reindexed with method Series
     (in this case a shifted boolean then filled series)