Replace pointer derefecences with array accesses
Get rid of remaining C preprocessor macros
Add Java class declaration
Remove usage of trbudget struct
Fix table initializers
Remove redundant casts
Remove remaining compilation errors
Implement BWT interface
Shift character values by constant bias

The original code used unsigned char, which has no corresponding type
in Java.  There were several possible solutions:

1) Using short instead.  SImplest code, but extra memory requirements
and lower performance due to increased cache pollution.

2) Masking all byte values with 0xFF when converting to int.  Ugly
code, performance is slightly lowered by the need to mask values.

3) Mapping values linearly from range [0,255] to [-128,127].  This way
byte values can be converted to int and compared directly.  When
indexing buckets characters will have to be converted back to original
range.  This solution has best performance and results in nice code,
so it was chosen here.
Let Encoder use DivBWT instead of Manber-Myers