Server Modularization

This commit splits up the class definitions that were all previously in
menu_cms into individual files stored in the 'components' directory.
They are now imported by cms.py instead of being written directly in
the file itself. This reduces the size of the file and makes it easier
to maintain the individual components since the components are simply
collected together in the route specification.