Added an additional ignore-except config option to add exceptions to files
ignored by the ignore-paths option.  For example if you want to ignore all
exe files except the .nuget/NuGet.exe file, you can add exe$ to the ignore-paths
and ^\.nuget to the ignore-except.

Added --except-regex command line option to RemoteOptions to set ignore-except
config.

New tfs-remotes for branches now will copy the ignore-paths and ingore-except
options from the default tfs remote.
Merge branch 'master' into ignoreexcept
Updated signature on IsIgnored method to require all three arguments
was `((i1 && !e1) || (i2 && !e2))`, is `(i1 || i2) && !(e1 || e2)`
Extract the ignore logic.

Working towards #381 and #not-a-hack.
Merge pull request #377 from wundram/ignoreexcept

except-regex option