Wrap JSInput Python code in CDATA section

Python code can commonly contain characters that are invalid XML, such
as '<' and '>'. This has proven to be a pain point for instructors
implementing custom Python grading functions for their JSInput problems
(see sample code below).

This change creates a more robust template from which to make
modifications.

```python
    # This is an XML syntax error, when not inside a CDATA section.
    if i < 0:
        print('negative')
```
Merge pull request #4563 from Stanford-Online/stv/jsinput/cdata

Wrap JSInput Python code in CDATA section
BLD-1104: List units that use group configuration.
REVERT THIS COMMIT BEFORE MERGE.
Addressed comments.
Added Anton's fixes from other branch.