refactor diff/merge to use source/destination instead of local/remote

- try to use (-) --> (+) in window labels for clear indication of
  source and destination (direction of diff)
- rename instance variables and selectors to use source/destination
  terms
dirty for a git project should include dirty git repo

- a dirty git repo is on that has staged and unstaged changes
- diff should a) image changes, b) disk only changes
  - not quite there yet for disk changes (unstaged changes not
    being shown
first cut at combining metacello project and git status/diffs

- '+' indicates git repo dirtiniess
- popping up `git diff` and `git diff --cached` windows, but
  unstaged files are not in mix ...
  - probably best to merge the git changes into a single window
    where output of the two diffs plus new files are shown in
    a single view ... ultimately image changes should be combined?
show both * and + ..

- no longer necessary to try to combine image and git diffs in
  same view
- should provide combined git diff view that combines unstaged,
  working copy and staged diffs into single window...
add new browse class/method implementors/senders to monticello merge browser

- install source/destination not done yet
- repurpose TDAbstractDevTool>>parseMethodSpec: to
  just return TDMethodDefintions (used to return
  GsNMethods)
- TDAbstractDevTool>>methodFromMethodSpec: returns
  GsNMethods
- share Method menu items between TDMergeDiffBrowser
  and TDFileTreeDiffBrowser via TDAbstractMergeBrowser
- touch project list menu yet again
- fix TDMonticelloTool>>mcmerge:and:in:
- implement flush cache in repository browser