eco32: change syscall ABI to use $2 to hold the syscall number (and some...)

Ok, the main purpose of this commit is as the commit line says,
change the ABI for syscalls, since that will free up $25 and
allows us to remove an ugly hack in uClibc.

So far so good, but when I started to do the changes to that,
I realised I don't like the whole gpr[] thing I was doing in
pt_regs, since it has the annoying property of leaving gpr[30]
unused (pc). That could probably have been solved by using
a union and munging them gpr[30] and pc in the same memory spot.
But, that felt uglier than what I ended up doing,
using a seperate rXX for each register and put pc in the spot
where r30 should have been.

*And*, when doing that change I noticed I had mixed up
r31 (linkreg) with r2 (return value) at a couple of places.
So, since I already were commiting the death-sin of dumping
several logical changes into the same commit, I thought I'd
better go all the way, so that's included here too.

Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>