Tls codec

In addition to the TLS stuff, this PR does some cleanup:

 - `adapt` from fs is now in utils
 - themes from utils are in their own directory
 - codecs are in their own directory