Removed backing string.

* CharBuffer and ByteBuffers are used instead. This prevents immutable strings with sensitive data in memory without any control. Algorithm must clear any sensitive data produced after obtaining token.

* Reformatted source code
Updated scala compiler options to show feature warnings