Correct handling of irregular block arrays in `Context.from_dim_data`

Closes #259.  Adds `from_dim_data` classmethods to the client-side maps and hooks everything together appropriately.