Fixed assignment to 'a'. Added tests and VARIABLE_TYPE.

The VARIABLE_TYPE defines what type uBASIC's variables are.
Added file LICENSE.

License text taken from http://dunkels.com/adam/ubasic/license.html.
Moved VARIABLE_TYPE to vartype.h. VARIABLE_TYPE functions.

The functions in ubasic.c that used int for variable values and
the function expr() in tokenizer.c now use VARIABLE_TYPE.

Also added a new test in tests.c.
Implemented comments with REM.
Implemented line indexing for faster jumps/looping.

This required adding the ability to to get and set the
tokenizer's current position pointer from outside of it with
tokenizer_pos and tokenizer_goto (c.f. tokenizer_init).
The index itself is stored as a linked list, which makes it ripe
for further optimization. It is accessed with index_* routines.
The interpreter resorts to running the old, slower jump procedure
when jumping forward (to a line that hasn't been index).

New goto test.
New instructions PEEK and POKE to call outside routines.

To use PEEK and POKE initialize uBASIC from your program with
ubasic_init_peek_poke(program, &peek, &poke) where "peek" is a
function peek(VARIABLE_TYPE addr) that returns VARIABLE_TYPE
and "poke" is a procedure void poke(VARIABLE_TYPE addr,
VARIABLE_TYPE value).

Use "PEEK addr, var" to set the value of the variable var to the
result of calling peek(addr). Use "POKE addr, value" to call
poke(addr, value);

The argument name "addr" is arbitrary; it doesn't mean you should
necessarily use it to pass your routines a memory address.
Slight code style fix
Merge pull request #1 from adamdunkels/dbohdan-master

Slight code style fix
Merge pull request #1 from dbohdan/master

Assignment bug fix, tests, loop speed improvement, REM and a couple other things.