Changes to make Seoul usable from NRE again.

The only debatable commit is probably the typeof() -> decltype() change. I know that it is bad that it requires C++11. typeof doesn't work anymore when using -std=c++0x, as it seems. Does anyone see another way? We could remove the variable assignment and evaluate a or b twice. But that's also suboptimal. On the other hand, aren't all userlands using C++11 anyway?