Refactor

looks like the lib has changed a lot since it was first written and perhaps become a bit messy. I just had a go at tidying it up. Mostly I've just re-organized the Binding classes then once I had done that I realised most of the utilities were for the binding classes so moved them all into the base binding class. Anyway I think its a fair bit simpler now. Anyone up to do some reviewing?