I added support for SoLE and SoLD tagged_blocks. This includes support for object arrays.

I wrote the code to parse object arrays and tried to make a more useful SoLD and SoLE tagged_block. I also added support for getting the transform points and the original size of the layer (smart object) from the user api. 

I tried to created a test and did. It seems to run fine but I cant run all the tests because py.test is breaking for me... It also seems to be breaking here. I didn't touch any of that code though and it doesn't make sense why it would be failing now.

tests/test_pixels.py::test_composite[filename8-point8-color8-get_color1] PASSED
tests/test_pixels.py::test_composite[filename9-point9-color9-get_color0] PASSED
tests/test_pixels.py::test_composite[filename9-point9-color9-get_color1] PASSED
tests/test_pixels.py::test_composite_32bit[filename0-point0-color0] ERROR: InvocationError: '/Users/Joey/funzio/hc2-client/PS-Scripts/psd-tools/.tox/py26/bin/py.test --verbose'

Anyways this code is something I wrote for a feature I need to access smart objects and their true sizes. 
ostype is of type bytes, and %r format specifier knows how to represent bytes, so 
```
raise UnknownOSType('Unknown list item of type %r' % ostype)
```
should be fine. Fixing it in `decode_descriptor` as well is a good idea.