Explicitly test the creation and deletion of every component type

Suggested Reviewers: @wedaly @jzoldak 

This feature will test that every type of component can be added and deleted.  There already exist features to test the editing of settings and the editing of the HTML.

These tests are done iteratively to mainly make the test more optimized.

Also, to make the addition of new component types easy and efficient, all components are stored in a dictionary that instructs the sequence of clicks to make a new component (ie a video is just by clicking on the video button but an advanced problem is created by clicking problem, advanced problems and then the component) and a function that will return true or false if the given component is on the page.

As far as the functions go, they were created with the possibility of other components being on the page.  Since there is nothing ostensibly different between two problem components, I check based on the things I know will be in the template.