rebase: provide detailed hint to abort message if working dir is not clean
Detailed hint message is now provided when 'pull --rebase' operation detects
unclean working dir, for example:
abort: uncommitted changes
(cannot pull with rebase: please commit or shelve your changes first)
Added tests for uncommitted merge, and for subrepo support verifying that same
hint is also passed to subrepo state check.
http://example.com/no/anchor, branches: (None, [])
http://example.com/an/anchor, branches: ('foo', [])
http://example.com/no/anchor/branches, branches: (None, ['foo'])
http://example.com/an/anchor/branches, branches: ('bar', ['foo'])
http://example.com/an/anchor/branches-None, branches: ('foo', [])
http://example.com/, branches: (None, [])
http://example.com/, branches: (None, [])
http://example.com/, branches: ('foo', [])