dynamic history

Previously, all specs had to be pre-allocated by using the 'add_history'
function. This is now no longer required and instead serves as a hint to
the HistoryContainer to pre-allocate the space for the given spec.

History can grow by increasing the length for a frequency, adding a
frequency, or adding a field. It can grow with any combination of
these.
Before init, when a panel is created, initial_dt is where the next bar should be inserted; however, when a panel is constructed at runtime, the dt is the current datetime and thus must be "shifted" forward by one bar. Thinking through this better, I think it only affects the buffer_panel.