Fix syntax error in foswiki module.
Rename "movement" to "motion" everywhere.
Implementation of repr and Program.count
Remove global variables alphabet and states.

They make no sense, because when running a testsuite some arbitrary
values will be mixed up with the values from the currently running
program.

Hence alphabet and states should properties of the tape and not global.
This is already implemented by getAlphabet().
Reintroduce HALT motion.

There is some legacy code lying around.
I want to support HALT internally for a few months.
HALT is not supported by the GUI.

Basically undo-es commit
3b0cee94bd83be62e76cd44887de57407fec7c23
Completely reorganize helper functions.
Further improvements for the helper functions.
Introduce QUnit testsuite.

I am going to switch to QUnit, because it is rather difficult to write
all the testsuite functionality myself. QUnitJS seems appropriate here.
Rename tests/tests.html to tests/index.html
General development. Major revisions.

- Introduce generic SyntaxException.
  Replaces InvalidFoswikiException and InvalidJsonException.
- Submit lots of testcases for helper functions.
- Fix several bugs in helper functions.
  Found via testsuite.
- Reorganize symbol handling. Goal is to be capable to define custom
  tape value equivalence functions. I will not introduce an abstract
  Symbol object (too much overhead), but introduce functions like
  isSymbol().
- Introduce initial values for Queue.
- Remove global common states StartState and EndState.
  I just did not use them.
- "Human string" will be officially supported by Tape.