kernel: add support for  .init_array.* constructors

Hummm... I thought that you would actually support priorities. And you sort of support priorities, but disregard them at the same time. If my code contains constructors with priorities and the constructors are called, I probably want them to be called in priority order. Why did I add priorities then?

Or this code is somehow magically guaranteed to call ctors in priority order? Then it deserves a comment.

The gcc change that I made makes sense anyway, because kernel instrumentation does not actually need priorities. So I would consider just leaving it as is.