Refactoring the Message classes.
Refactoring the Message classes.

The `Message` base class now wraps the calls to `update` and `updateTreewise`.

Changes to update:
  - the definitions of update is now final.
  - derived classes must provide a `protected` method `update2`
    (TODO: better name)
  - the gain is that derived classes no longer need:
     * to track the "previous message"
     * perform normalization themselves
     * track maximum message difference
     * return references to `this`
     * restore the variables value
    this is all done automatically in `update`

Changes to updateTreewise:
  (very similar to update)
  - definition of `updateTreewise` is now `final`
  - derived classes must provide a protected method `updateTreewise2`
  - on the plus side derived classes no longer:
    * perform "`updateDuringThisTree` checks"
    * manage the update order stack (a.k.a. `TreewiseBookkeeping.stack`)

malcolmgreaves/factorie,zxsted/factorie,Craigacp/factorie,factorie/factorie,hlin117/factorie,patverga/factorie,pogren-oracle/factorie,asubbaswamy/factorie,joprice/factorie,strubell/factorie,melisabok/factorie,digitalreasoning/factorie-scala-210