Implement CASE support

 * This seems to work but I don't have in-depth tests yet
 * I seem to still have some oddity here and there which needs to be
 nailed down
 * This only implements the "full" CASE syntax, not the simplified, and
 it makes ELSE mandatory, (its optional with CASE)
Test improvement and documentation improvements
Merge pull request #81 from pharaun/case_support

Case support