Misc type / typecast cleanup

While casts are pretty much unavoidable in complex code,
they're also code smell indicators of potential problem areas.
Therefore: trivial refactors that reduce unnecessary casting
are improvements because they make the necessary ones stand
out more for later scrutiny.

The focus here was on pointer casts (the most dangerous kind).
Most of these are fairly trivial cases: completely pointless
casts to/from void*, refactoring types between char/uint8_t to
reduce the need for casting, etc...
vscf: s/const vscf_data_t*/vscf_data_t*/ for pub interface

The original idea was that only the vscf-handling code itself
should be messing with vscf_data_t, therefore its interfaces
which returned that type always returned it as a pointer-to-const,
even though it needed to be modified by later vscf calls.  This
had the obvious downside of introducing unnecessary pointer casts
between const and non-const both within and without the vscf code
itself.

Later the data type became completely opaque to consumers anyways,
making the const-protection largely pointless.  This commit removes
the const-protection and thus gets rid of the ugly const-casting.
type/cast cleanups related to ltree

Reduces casting of ltree data types where reasonable, as well
as some uint8_t/char casting in/near the ltree interfaces.