Merge remote-tracking branch 'upstream/master'

* upstream/master:
  Renamed files and directories and corrected case in project file. Files and directories are case sensitive in Linux but not Windows.
  Remove files GithubSharp.Core.dll and Github.dll when upgrading
  Problem fixed with VS addin
Merge branch 'master' of github.com:fraga/gitextensions

* 'master' of github.com:fraga/gitextensions: (90 commits)
  Tag push fixed if tag creation failed
  FormSettings crash fixed. Closes #1043
  Merge pull request #1039 from tal952/master
  Revert "Converted GitExtensions.Mono.csproj to .net 4.0"
  Revert "Merge remote-tracking branch 'Chevex/NET40'"
  Minor FormSettings improvements
  GitCommands.Setting now can get version from assembly
  MouseWheelRedirector minor changes
  Upper case check for international characters fixed in spell checker
  Unnecessary "this." removed
  Word detection for Cyrillic characters fixed
  Spell checking for "internet" keyword fixed
  Converted GitExtensions.Mono.csproj to .net 4.0
  Dialog owner fixed for Quick Pull dialogs
  one more indentation :(
  fixed indentation (replaced tabs with spaces)
  Fetch all dropdown item
  The same behaviour for pull button from Commands menu
  NullReferenceException when searching through artificial commits
  Fixed diff when multiselect with artificial revision
  ...
Clean up setting of fonts

This patch simply refactors the old SetCurrentDiffFont method into three
methods, SetCurrentDiffFont, SetCurrentApplicationFont and
SetFontButtonText.
Support a separate font for the commit message

This patch adds a config setting for a CommitFont. It makes the TextBoxFont
property of EditNetSpell public, so that this can be set to the CommitFont.

Also, a commit font dialog is added to the settings form, so that it can be
easily configured.
Change FormCommit to use TextChanged event instead of KeyPress

Soon, lines that are too long will be marked red for characters that cross
the configured boundary for max line length. For this to work properly, we
will need to use the TextChanged event. The reason is that the KeyPress
event is invoked *before* the key that was pressed has been assigned to the
TextBox.Text property.
Add helper methods for line count/length to EditNetSpell

It's nice to be able to get the LineCount and LineLength for text in the
TextBox, and upcoming patches will require them.
Add red coloring to long subject line in commit message

If the config is set to allow max 72 chars in the commit message subject
line, then any character exceeding 72 chars will be colored red, so as to
indicate to the user that he should shorten it.

The patch also does some simple refactoring; the method is renamed to
FormatLine - now taking a zero-offset line parameter.

The if tests have also been slightly modified; instead of comparing the
limit to Message.CurrentColumn, the limit is now compared with the
lineLength. The reason is that a user might type a long line, then click
somewhere in the middle of the line and press backspace... The line may
still be longer than the allowed limit.
Add config option to enable/disable indentation in commit messages

This patch adds a checkbox to the commit template settings window, which
controls a newly added config CommitValidationIndentAfterFirstLine. By
default this is checked, so the behaviour is the same as before this patch.

If unchecked, then commit messages will not have a bullet " - " appended on
line 3 of the commit message, and no indent will be inserted in the
WordWrap method, when newlines are created.
Add event TextAssigned to EditNetSpell. Use to format commit msgs

This event is invoked when the Text property is set programatically, and we
use this to call the FormatAllText method. FormatAllText simply calls
FormatLine for all lines in the text, such that any formatting is applied
to text that is assigned to the commit message text box.

Useful when a cached message is assigned to Message.Text. It might need
coloring or word-wrapping.
Add index guards in EditNetSpell.WrapWord method

If this method is called on empty lines or lines with only whitespace, it
will throw an exception, because the while loops did not have any
termination for that case.

Fixed with simple guards that the index must be >= zero.
Rename/Modify EditNetSpell.ForceNextLine to EnsureEmptyLine

This patch changes this method so that it doesn't matter if it is called at
the end of some text *or* for any line of existing text. If the latter is
the case, it will do nothing if the line of the supplied 'line' argument is
already an empty line. In other cases it will insert a new line.

If any insertion is done, it will not explicitly set the Text property, but
rather modify the SelectedText. This has the benefit that existing coloring
is preserved.
Add option to turn off automatic word-wrapping in commit messages

This patch adds a checkbox called Auto-wrap to the status bar. If checked
(which is the default), it will behave as before, so that text below the
subject line is automatically word-wrapped.

If unchecked, no wrapping is done, and instead line coloring is performed
as for the subject line. This is useful for people who might insert ascii
art into commit messages, and thus occasional breaching of max length for
lines might be acceptable. Also useful for users who simply want to do line
wrapping manually.
Enlarge pull dialog
Pull dialog supports --tags option
Use git to choose file on choose local/remote/base file in FormResolveConflicts

 - It is important to use git to checkout files because old existing methods in GitModule.cs
   can checkout wrong file content. This is still a problem in method SaveBlobAs and
   should also be fixed.
 - Fixes part of issue #1456
Use git to save/open a file on save/open in FormResolveConflicts

 - It is important to use git to checkout files because old existing methods in GitModule.cs
   can checkout wrong file content. This is still a problem in method SaveBlobAs and
   should also be fixed.
- Now it is also shown an error if open or save file failed
- Fixes part of issue #1456
Only show save as and open with in context menu of conflicted files if files are present
Use a more git compatible way to convert lf to crlf in GitModule.SaveBlobAs

- The old version of GitModule.SaveBlobAs removes file information like BOM,
  the new version of GitModule.SaveBlobAs treats the file more like a binary file.
 - GitModule.ConvertCrLfToWorktree is a better way to do line ending conversion
   in GitExtensions. It converts line endings in the fashion of git.
- But it doesn't checkout files like git will do it. Because it doesn't parse .gitattributes
  file and has not the same lf to crlf algorithm.
- The best way to check out a file in SaveBlobAs would be to use git checkout <commit-id> <name of
   file>. But that would overwrite current file in working directory.
Merge branch 'master' of git://github.com/gitextensions/gitextensions

* 'master' of git://github.com/gitextensions/gitextensions: (687 commits)
  File History fixed if Settings.RevisionGraphShowWorkingDirChanges is on
  GetDiffFiles, GetStashDiffFiles and GetTreeFiles return IList instead of IEnumerable
  You break my heart (or code)
  see d958d61ecd071: use ToList() only when it is needed
  Two tests fixed
  "0 hours" text fixed
  Git working dir fixed for shell extension and VS addin after last commits
  Remove submodule command fixed
  Exception fixed for first revision in repository (Diff tab) after commit c982a8127d589
  FindGitWorkingDir should be called explicitly before creating GitModule
  Suggested local branch name fixed for svn remote branches
  Git SVN Clone support custom trunk, tags and branches directory
  Auto pull option behavior improved
  Bug fixed in ProcessSubmodulePatch. Reset form can delete directories
  Revert "IconDiffTool removed"
  GitEx shell extension registration in settings form fixed with UAC
  Icons for GitEx shell context menu added. Closes #710
  IconDiffTool removed
  Load heads async
  Revert "Check for null. Removed reverse - there is already ByCommitDateDescending"
  ...
Set VS2012 ShellEx project tools version to 110.

 - This allows the app to be built on systems w/o VS2010 installed.