Fix broken LPC switch, added tests.

Fix #66 

This commit added a detailed switch test that covers all
possible LPC switch cases.

LPC compiler was generating and store switch numbers as
POINTER_INT, which happens to be same size of LPC_INT
under 64bit.This commit fixed generated icode for storing
switch cases to use  LPC_INT(key) + short(offset) as
lookup key, see icode.c for details.

Also resolved an existing problem under 32bit mode, switch case
constant was being stored as an POINTER_INT, which is
not enough for storing LPC numbers on 32bit platform, see
grammar.y.pre for details.