Add diff files form

Add the Diff Files form used to view the files being diffed and
change analysis methods, key words and other features.
Add Pair class to project

Add templated pair class to the project to emulate a std::pair from C++
Split out UniqueIdentifiers

Split the UniqueIdentifiers class out. This will need some tidying.
Refactor BlockInfo class into its own file

Refactor BlockInfo class into its own file. Was previously in
UniqueIdentifiers.cs
Refactor MatchingBlocks class into its own file

Refactor MatchingBlocks class into its own file. Was previously in
UniqueIdentifiers.cs
Refactor UniqueIdentifierPair class into its own file

Refactor UniqueIdentifierPair class into its own file. Was previously in
UniqueIdentifiers.cs
Add node clearing when refreshing diff window

Nodes would have accumulated blocks, had the nodes not been cleared in
the refreshform method.
Add colours to unique ID nodes

Add generic background colours to unique ID nodes
Add changes to launch the diff tool for blocks

Lots of things changed to allow the diff tool to be launched for
different blocks identified by the diff form
Correct start and end indices

Updated the start and end indices to make sure that the blocks being
read were complete and not including the following section
Remove unnecessary tree view

Merging the differences into one tree view list. The one-sided blocks
will be displayed using different background colours and icons
Merge remote-tracking branch 'origin/development' into diff-files-window

Conflicts:
	FunctionMerge/FunctionMerge.csproj.user
Add comparison of blocks

When reading blocks, matching block entries are compared to see if the
contents differ.
Tree view output now displays "Matching" on those entries that contain
the same text.
Tree node tags now contain the original unique ID, whereas the string
could vary.
Add root nodes for matching and one file only

Adds root nodes for matching, and only in first/second file blocks.
The matching unique blocks are then sub-nodes to these.