Switch to an internal list of machine tokens.

First pass. Everything works, tests pass, but the code probably isn't as pretty as it could be. Additionally we still re-render the entire machine token; I haven't started on making that smarter to only re-render (for example) the list of icons. I suspect we'll also want to switch the unplaced units to a similar approach once this work is finished. At that point we'll be able to eliminate `smartUpdateList()` - yay!

### QA

With `/:flags:/il/mv`.

1. Deploy the Wikimedia bundle.
2. Drag-n-drop the Wordpress charm over, but don't deploy it.
3. Switch to machine view.
4. Run this in your console:
~~~~
var u = app.db.units.item(2), m = app.db.units.revive(u); m.set('machine', '0');
~~~~

You should see the Wordpress icon added to the 0 machine.