trackchanges: moved code into separate add-on

(integrated from trunk branch change 18bc49b by Todd Whiteman <toddw@activestate.com>)