Massive refactor of Action.

A lot of the functionality of the Action base class now provided via
annotations.

The actions now know if they're POST or GETs as well.