Empty semesters will now be trimmed off, bug fixes, UI changes

css/main.css
	-added declaration for a .not_prerequisite class for the modules in the module list. This will be used to filter among prerequisites when given the choice.
	-modules that have been added will not disappear now. Instead, they will be highlighted green.
	-modules will turn blue when mouse is over them.

css/skilltree.css
	-shadow removed from the moduleBox DIVs
	-border of moduleBoxes expanded to 2px
	-added declaration of an .invalid moduleBox
	-added declaration of a .moduleSelectBox, which are extended moduleBoxes
	-#moduleInfo appearance altered to resemble that of a moduleBox. May be removed in the future.

scripts/script.js
	-numOfSelections global variable added. This will keep track of the module selection boxes DIVs currently in the skill tree.
	-stateIsValid() method added, that verifies the skillTree can be saved safely. Currently a stub that reports false.
	-ensureSemester() now checks that the semester number is > 0
	-trimSemester() method added, which will trim off any empty semesters at the end of the tree
	-all semester placement logic is now placed within assignSemester, which will now take into account new assignedModules which have no semester. It also now returns the semester in which the module was placed, instead of a boolean success value.
	-addModuleToTree checks if the module is already in the tree, and displays a warning if so.
	-modules are now assigned a semester immediately in addModuleToTree, instead of calculating their location before assignment.
	-first for loop in addModuleToTree has been optimized.
	-addModuleSelectionToTree function stub expanded further.
	-handler for the save button added
	-re-enabled detection of modules dropped outside semesters

scripts/skillTree.js
	-disabled Arrow overlays for connections
	-added a separate PaintStyle and SourceEndpoint for moduleSelectionBox DIVs
	-moduleSelectBox function now supports arrays, will now add the endpoints as necessary.
	-semesters are now 'greedy' droppables, so the event bubbles from child to parent.
	-empty mouseover/out handlers added for the moduleBox DIVs
	-all logic pertaining to the #moduleInfo box has been commented out

templates/SkillTree.html
	-the Save and Reset buttons now have IDs.
	-arrow div added to the #moduleInfo DIV, which may evolve into a pop-up.
Added prerequisite group and module removal functionalities

app.yaml
	-enabled remote_api for data uploading to server later.

admin.py
	-disabled IndexModules handler

css/fonts/NUSMST-icons.ttf
	-custom font which provides symbols in place of letters

css/fonts/NUSMST-icons.css
	-custom font, same as above, but embedded in Base64

css/main.css
	-added declarations for icons, which use the custom NUSMST-icons font mentioned above
	-added rules for visibility of different icons in the notification panel, depending on the classes set on the panel
	-nickname now shows a hand pointer when mouse is hovering on it.

css/skilltree.css
	-modified .moduleBox DIVs to use border-box as their box-sizing. Height and width adjusted accordingly.
	-added definitions for the .prereqGroup DIVs, which are sparse as they are also .moduleBox DIVs.
	-added a controlPanel declaration with simple transitions, which contains buttons (also with simple transitions)

scripts/script.js
	-MODULE_HEIGHT adjusted
	-module selection groups are now known as prerequisite groups, this has been reflected throughout the code
	-stateIsValid() is now stateIsInvalid(), and will either return false or an error message.
	-loadFromServer() and saveToServer() function stubs added.
	-isPrereqGroup() method added to check whether an assignedModule is actually just a prerequisite group object
	-logic added in repositionModules() to support prerequisite groups
	-all HTML is now indented for readability.
	-trimSemesters() never trims the first semester
	-assignSemester() handles prereqGroups differently than assignedModules
	-addModuleToTree() has many changes:
		-now verifies that the module being inserted does not have any preclusions already in the tree.
		-modules are assigned the first semester immediately
		-now adds pre-requisite groups via addPrereqToGroup() if a group has more than one module code
		-logic for (checking whether the module being added is a prerequisite of any other module) has been moved before the check for the module's own prerequisites.
 	-addModuleSelectionToTree() is now addPrereqGroupToTree(), and has complete functionality
	-removeAssignedModule() can remove a module or a prerequisite group, and account for relationships.
	-clicking a prerequisite group filters the choices in the module list via a  filter
	-inserting a module or clicking a blank area in the skill tree clears any prerequisite filters (from selecting a prerequisite group.
	-remove button functionality added
	-save button no longer checks for validity on its own.

scripts/skillTree.js
	-module selection endpoint declarations now renamed to group endpoints
	-.moduleSelectBox renamed to .prereqGroup
	-remove jQuery function help to remove .moduleBox DIVs from existence. Currently as simple as calling jsPlumb.remove()

templates/SkillTree.html
	-External fonts embedded (CSS)
	-all icons added in notification bar