WP_JSON_Controller POC

Use @joe_hoyle's proposal from #551 to register the new taxonomy terms controller introduced in #549
But if we can't define abstract static methods, we have no way of enforcing type. It also makes inheritance more complicated, because we can't easily inherit, we have to define each method to call the parent class.

Further, I don't think using state would be as easy as you make it seem once those methods are static. If the API assumes that those methods are static, you'd have to do a lot of back twisting to introduce state within that object, without resorting to some sort of singleton pattern.