* Refactor event handling in controllers to use a method to define
the hash (and thereby allow inheritance)
* Refactor link handling so that links which should be handled by the
router can be handled by the base class
* Change the router to throw out controllers for pages which aren't
on-screen (and thereby avoid a lot of weirdness)
* Create a nascent version of the mod detail page
* Make the slug mandatory for Mod instead of name, and load the name
from the data file
* Make the Feedback view universal on all pages
* Refactor the use of mod pack to have a single global object at the
router level which is shared between pages. Further, make this one
object load itself immediately and have it automatically load any
activated mod version
* Refactor the use of Storage related to mod pack versions into the
router as well.
* Add trace logging back in for events, but allow individual classes
to suppress it (as opposed to actually supressing the events)
* Fix a bug in ModVersion.eachItem where it would suggest so-called
items which are merely registered slugs without associated items
* Remove V1 of the mod version parser and shift V2 up to be V1
* Add a parser for mod.cg files, and refactor the the mod-version.cg
files to push the appropriate content up to the mod.cg
* Remove the concept of "silent" from BaseModel along with logging
each event as they are fired (which is what really prompted the
need for it in the first place)
* Move use of the Storage class to be completely the province of the
controllers most closely related to models affected
* Convert the ModVersionController to the ModController and have it
take on responsibility for choosing the mod version
* Update BaseModel to support simple accessors for the current state
* Update CraftingPlan to be able to remove uncraftable items
* Implement the Mod model
* Tweak style of quantity label in output box to be more visible
* Move data files for all mods under a directory for the specific
version of the mod
* Add a `silent` property to the base model to prevent models which
shouldn't be observed from emitting events
* Change the term "itemSlug" to just "slug" across the board
* Change all models so that they don't require their parent in their
constructors and so that they don't automatically add themselves to
their parents lists
* Remove a bunch of unnecessary event triggering
* Tighten up access to various lists of children across all models
* Refactor the guts of the V2 parser into an abstract base class so
it can be used for other parsers in the future
* Remove a number of unused methods