Dump selection history in DEBUG mode

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Navigate selection history via log jump up/down button

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Fix: Can't reach first selected item when navigating history

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Fix possible memory leak

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Show message with bold italics if HEAD commit is highlight

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Only add a selection history entry when a commit is selected

Select another commit will lead two events,
one is dis-select old commit,
the other one is select new commit.

IOW, no need to add selection history entry when the old commit is dis-selected.

This reduces complicate logic in SelectionHistory::Add()

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Re-write SelectionHistory::Add()

1. Go back to previous one(not current one) when go back the first time
2. Stay at the first selection if GoBack reaching the first one
3. Go back to some commit and click it, then discard the tail of selection history
   * Selection history: A -> B -> C -> D -> E
   * Go back and highlight C
   * Click C
   * D and E will be discard

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Only discarding tail of selection history if historical branch is really occurred

Example:
 * Selection history: A -> B -> C -> D -> E
 * Go back and highlight C
 * Click C
 * D and E will be kept, then
  (1) D and E will be discard when any commit(except C) is clicked
  (2) Navigating history again, and click a new highlight commit
      => history is still kept

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Highlight selection history with red text color

Also works on DrawTagBranchMessage(),
but I am not sure if it is good!

Also, pass the test on XP OS.

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Show warning when navigating to a invisible commit

Testing Step:
1. show all branches
2. click some commit in other branches
3. show current working branch
4. navigate selection history

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>
Fixed issue #1928: Hotkeys in "Show log" dialog for navigating back / forward

Signed-off-by: Yue Lin Ho <b8732003@student.nsysu.edu.tw>