AMP refactor

bit of a beefy pull-request, but now we get a slightly simpler codebased, mixed-type args, and a slightly simpler protocol. This should be interesting too because the quick C AMP implementation I wrote easily does 8+ million ops/s so we should be able to have a cool C client as well