Hatch clipping

Fixes a genuine bug with hatch clipping in Agg & tidies up some of the ```_backend_agg.cpp``` code.

Note the change from ```typedef agg::scanline_p8``` to ```typedef agg::scanline_u8``` has had no noticeable detrimental impact (```p==packed```, ```u==unpacked```, see http://www.antigrain.com/doc/scanlines/scanlines.agdoc.html#toc0001).

There are some changes in here which could fall into ```v1.2.x```, but given our targets for ```v1.3``` and the fact that I am actively working on ```_backend_agg.cpp```, I think it is fine for it to go to master only.