Adjust NonText character highlighting

This will hide the ~ character for empty lines. I've added a function that will restore the ~ and listchars if needed.