Fix LPC switch problem, add 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.
Adding test for sort_array.
new option SANE_SORTING, for old sorting algo

This only applies to sort_array EFUN.

Using old sorting algorithm, LPC code can only return
-1 and 0 and still sort correctly (but slow), it is
recommended to change code to correctly return 1, 0, -1
instead.

see options.h for details.
Merge pull request #67 from sunyc/master

Fix broken LPC switch, added tests. new option SANE_SORTING