Rework to be generic

The "action" column will have a JSON object that specifies the
action to be taken.

Possible examples:

{"action": {"mark": "af32"}}

{"action": {"ratelimit": "100kbps"}}