Begin Expansion Refactor

Start changing the codebase to use an object to represent the expansions
of a symbol. The Struct will be replaced with a fully-blown class soon.
Add Expansion Object

This object now collects together the tokens in an expansion and allows the
computation of the predictions to be computed in the Expansion itself rather
than higher up the chain.