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 adding selection history when a commit is selected

Select a new 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 when the old commit is dis-selected.

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>
[WIP] Use red text color to highlight history

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

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