Component templates handle <script>, <template>, and <textarea> sources

Implementation and tests for the various cases around referencing special element types in component configs, as mentioned in #1418.