arm: add __aeabi_atexit()

arm eabi requires this symbol for C++ dtors.
usually it is provided by libstdc++, but when a C++ program
doesn't use the std lib (free-standing), the libc has to provide
it.
this was encountered while building transmission, which
depends on such a C++ library (libutp).

this function is nearly identical to __cxa_atexit, but it has the
order of argumens swapped for "performance reasons".
see page 25 of

 http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf

there are other aeabi specific C++ support functions missing, but
it is not clear yet that GCC makes use of them so we omit them for
the moment.

test case:
/*
g++ test.c -c -o testcpp.o
gcc test.c -c -o testc.o
gcc testc.o testcpp.o -o a.out
*/

\#ifdef __cplusplus

template<typename T> class X {
	public:
	T x;
	~X() { dtor(); }
	X() { ctor();}
	inline void ctor() { x = 1; }
	inline void dtor() { x = 0; }
};

X<int> x;

extern "C" {

int test() { return x.x; }

}

\#else

extern int test();
int main() {
	return test();
}

\#endif