der: fix nonegative integers with 80 bit set

Nonegative integers can have highest bit (0x80) which
makes them interpreted as negative numbers.

When encoding such integers, prepend 00 byte before first byte
to force positive number detection.
Don't cache submodels

asn1.js uses same model object for different depths of
recursive encoding.

It is possible that use-function would return different
submodels on different calls so caching it's return value would
break encoding.