symstorage: init_symtorage(), secd_add_symptr

Moving symbols to internal storage of SECD

This a draft commit of symstorage.

secd->symstorage now contains 4 values for symbol storage management:
it's an array that is allocated in `init_mem()` and holds:
    #(hashsize hasharray bufptr buflist)
where hashsize is number of entries in the hashtable, hasharray is
an array of lists of slices of bytevectors with the same hash, bufptr
is free pointer into the current buffer, buflist is list of bytevector
buffers (when a buffer is full, a new one is preprended to the list).

Symstorage is like the EVM one: new symbols are appaended to a bytevector
buffer. Each symbol is added only once: if there's the same existing
symbol, pointer to the latter is reused. This makes check for symbol
equality trivial, just pointer comparison. There's a hashtable that
makes possible quick lookups for a hash of a string to find
the corresponding symbol.

Bytevector buffers are linked in a list.
symstorage: BUFPTR entry removed

BUFPTR is now stored in its bytevector as offset.