Fixed a nasty bug with strings being larger than BLOSC_MAX_TYPESIZE

This was a fundamental flaw in BLZ/Blosc.  In theory, the itemsize in Blosc
would only be used for determining the amount of bytes to be shuffled, but
in practice this is used in getting a number of 'items' in the
`blosc_getitem` call.  So that means that itemsizes cannot be larger than
BLOSC_MAX_TYPESIZE (currently 255).

The main problem with this were strings, because NumPy reports them as
having a typesize equivalent to its size, and that means that the
BLOSC_MAX_TYPESIZE value can easily be reached.  Now, the string
case is specially treated and the itemsize is 1 for byte strings
and 4 for Unicode ones.  This also allows for better behaviour of
the shuffle filter.

In the future, DyND would provide more flexibility for dealing with
the actual itemsizes, but meanwhile this workaround is the way to go.