fix motif loader under release build
tciet:163
It turns out that allocating a static class under a release build with a
static char might not be so reliable. This showed up as two problems
first was the test_algorithm unit test would fail.
The second was that the motif parser wouldn't work. In my efforts to
diagnose this I ended up moving the motif file parser to its own file
and splitting the spirit semantic actions up into multiple functors.
(functors remind me of anonmyous classes in java, useful but so annoying
synatacticaly).
Eventually I solved the problem by making the const char *alphabets
just available directly from the Alphabet class, as I couldn't figure out
a way to get the static function returning a reference to a static local
variable (which according to the C++ faq should've been allocated when called
and not before).