Use a shared mem array for buffering
Use a shared mem array for buffering

Writing to a shmarray is faster and allows the parent process
to access data points up to the last hangup as was the case previously
when writing took place in process.

Drop the `columns` kwarg to `DataStorer` and instead rely on an explicit
`np.dtype` which must be specified if a user intends to store both
string and numeric types in a single buffer. There is no support for
inferring string typed columns based on the first data point since
pandas types these as `object` arrays which are unsupported in
`shmarray`. If the user does not provide an explicit dtype and merely
a sequence of column names, type them all as floats.

Keep support for loading legacy numpy structured array data sets.

sangoma/switchy