Make tools use commands

* ve.ui.Tool provides an onSelect method that executes a command
* All tools should execute a command by name rather than re-implement the
  command execution from scratch
* Some things, like list style toggling, must be moved to actions
* Generalize "sticky" effect of tools to a static deactivateOnSelect
  property, which is true by default (and easier to understand)

Change-Id: I556a05a2744454f626c7992223f40172b4aba82e
Make getToolsForNode place primary commands first

Use command name matching between available tools and a node's primary
command (if set) to prioritize the primary command ahead of all others.

Change-Id: I7dd98804fc72b2ca198b01cf07f2acf131af67cb
Merge "Make tools use commands"
Merge "Make getToolsForNode place primary commands first"