Refactor ADVANCED_COMPONENT_TYPES

    Modified to a setting in CMS common.py and aws.py
    Also factored out are: ADVANCED_PROBLEM_TYPES

    This enables third parties to add XBlocks to their system
    without having to make a code change.

    Code also added to ensure that a component should exist in both
    ADVANCED_COMPONENT_TYPES and the course advanced module list
    in order for it to be enabled in the course.
Merge pull request #4512 from Stanford-Online/dcadams/refactor_advanced_component_types

Refactor ADVANCED_COMPONENT_TYPES