Fixed some unit test issues on Vs2012 only
Removed some allocations
Fix focus issue with 2012 Search / Replace Control

Visual Studio 2012 moved the Search / Replace control to an editor
adornment and gave it incremental searching capability.  Yet they didn't
implement IIncrementalSearch hence we had to query specially for this
adornment to prevent VsVim from stealing keystrokes

closes #1073
Allow spaces around the = in 'let' expressions

This gets us part of the way to fixing #1074
Fixed some minor issues
Change :vsc to work with a range

While we don't actually pass the range down to the Visual Studio Command
function, the underlying commands themselves can act on the active
selection (think comment).  Given that : will always prefix a range if
there is a selection we should support the range to make key mappings
easier to use

closes #1077
Unit tests for GetAdornmentLayerNoThrow
Fixed event handler adapter for Vs2012

Visual Studio 2012 changed the default event handler code spit

// old
Click += new EventHandler(Form1_Click);

// New
Click += Form1_Click;

The adapter for the event handler pattern wasn't checking this.  Had to
update to this new pattern.
Better vimrc encoding support

VsVim now respects vimrc encodings in the following order

1. BOM
2. UTF8
3. Latin1
4. Forced UTF8 (if everything else fails)

This closes #1074
Shell command was ignoring quotes

The shell command was incorrectly treating double quotes as a comment.
They should be parsed as literal double quotes in the context of a shell
command

closes #1045
:w support for writing to specific file
Unit tests for 1074

Adds unit tests for issue #1074
Fix key handling in Report Designer

The Report Designer hosts the WPF editor control and customizes the
processing of key strokes in a special way.  Based on the behavior it
looks like they are trying to get common combinations like Ctrl+A to
work in the hosted editor.  By default the hosting logic doesn't provide
this behavior and most common hosts have to manually add it.

They do this by overriding Control.IsInputKey.  If they provided key
stroke is one of the special keys then they pass it through
IOleCommandTarget::Exec.  If it is handled there then they return "true"
from IsInputKey.

This means they key is not considered handled and it will continue
through the WinForms chain of messages and eventually make it's way back
to any KeyProcessor implementations.  VsVim has both an
IOleCommandTarget and KeyProcessor hence it sees this key twice.

The fix is to just ignore all special keys in the KeyProcessor
implementation if we are dealing with the Report Expression Editor.

closes #1088
Deleted a type accidentally added to the system
The command margin respects host preference now
Removed option type from IVim interface
Ability to display let values
Changed the Tokenizer char API

The char is now represented as a value instead of an option.  The end of
line case is represented as 0.
Basic function parsing support

Added basic support for function parsing.  Need a little more work and
tests to fully take care of issue #1086 but not too much.
Refactor vim integration test