change sys module format and move communjs modules

Sys modules had a different format to user modules. The change allowed
communjs modules to be moved to the sys module cache. This means that
they will not be over written if the module cache is overwritten.
add the internal functions to communjs/internal