This commit fixes all the remaining warnings

For the discarding const pointer warning,term_cmd was const char *const,
and we were trying to assign that to const char *.
So I changed the const char **cmd to a const char * const * const cmd
Sounds confusing? Declare `cmd` as a const pointer to const pointer to
const char, that's all we did and the warning disappears.

For the other warning, initialization makes integer from pointer without
a cast, initializing the first member of the wss[] array as NULL,
was actually interpreted by the compiler as assigning the first member
of the struct (which happens to be an int) to NULL, and NULL happens
to be a pointer and hence NULL was not compatible with an int.

So changing the NULL value to 0 fixed the warning. I have tested the
binary a little and there seems to be no crashes as of yet.

What I want to know is, you intention behind assigning the first member
of the array wss[] as NULL? Were you trying to make all the members of
the struct Workspace as NULL, or just the first member of ie int layout
as NULL. If you were trying the former, we need to assign all the NULL
eqvivalents of ints and unsigned ints there.

Now I should focus on the clang warnings.