WIP/ENH: allow categoricals in msgpack
closes part of #7621

WIP, but wanted to put it up as is, since it probably interacts with  #12129
cc: @kawochen 

this is how I modified the schema - open to suggestions

``` python
# normal block
 {'dtype': dtype,
  'data': ExtType(0, <bytes>)}
# Categorical block
 {'dtype': 'categorical',
  'data': {
      'codes': {'dtype': 'int8', 'data': ExtType(0, <bytes>),
      'categories': {'dtype': dtype, 'data': ExtType(0, <bytes>)}
}
```
