Add first pass of optimised sub encoder

Full details of the encoder are in the detailed description in the
source itself. But this is effectively an "optimised" SUB encoder
which is similar to the add_sub encoder except it doesn't bother to
use the ADD instructions at all, and it doesn't zero out EAX for
each 4-byte block unless absolutely necessary. This results in
payloads being MUCH smaller (in some cases 30% or more is saved).
Remove '*' from valid file system chars
Add the NULL byte to the list of valid chars

While rare, I guess it is a possibility that the NULL byte can be
used.
android payload golf
native jni stager
working binaries