Add for_json() hook functionality

This adds the for_json kwarg to all the encoder APIs. It also adds checking for a for_json() hook in the pure Python and C extensions. Also there are tests and I've updated the documentation.

I didn't put in a section in the documentation about "extending simplejson with the for_json hook", because I thought I'd leave that at your discretion.