ENH: Use structured array

@isolver this would make it so that `raw.discrete` was a dict populated with struct arrays. I'll say more below.