Refactor string interpolation to delegate to the tokenizer

This refactoring helps us clean up the interpolation code and
guarantee it works as expected since it goes under the same
tokenization rules. It also helps provide better sigil handling
(going to be improved in upcoming commits).
Remove warnings on protocol/consolidation.ex