sync: do not redefine inline as __inline for C++

Since the editor includes base.h, and the editor is written in C++,
checking for C99-support is not the right thing to do. So let's
just keep inline as inline in such cases.

This is needed when building the editor with Visual Studio 2012.

Thanks to Xeche for noticing.
editor: do not pass a string to std::bad_alloc ctor

The C++ standard does not contain a definition of std::bad_alloc
that takes a string, this is something that older versions of
Visual Studio did as an extension. This is no longer available in
Visual Studio 2012, so let's just not pass any string to it.

Thanks to Xeche for noticing.
editor: move horizontally with tab / shift-tab

Muscle memory is hard to overcome; support tracker-style
tab-movement.