Emacs: give better error feedback

If the bg process is not available, or the current file is not in a
project, then explain this. Update the README as well.

Also fix some tabbing issues and add a bunch of tests.
Remove PowerPack CodeDom clone as it is now a standalone package
Removed CodeDom files from fsproj
Merge pull request #730 from 7sharp9/RemoveCodeDom

Remove PowerPack CodeDom clone as it is now a standalone package
Ensure Event handlers are remove on dispoosal of SyntaxMode
Merge pull request #731 from 7sharp9/EnsureEventHandlerDisposalForSyntaxMode

Ensure Event handlers are remove on disposal of SyntaxMode
Ensure all Tip window events are removed on disposal
Merge pull request #732 from 7sharp9/TipWindowEventDisposal

Ensure all Tip window events are removed on disposal
Ensure LanguageBinding cleans up event handlers on disposal
Merge pull request #733 from 7sharp9/LanguageBindingEventDisposal

Ensure LanguageBinding cleans up event handlers on disposal
Improve semantic formatting

Add extra punctuation types for common symbols:
:: |> ! _ :> :?> :? || &&
Added extra bracket punctuation for attributes type defs, arrays:
[< >] < > [| |]
Added support for Properties, Fields, Functions, Vals, Delegate, Event.
Added fix for FCS reporting ranges spanning the whole symbol content
rather than the ident segment, uses the right column alignment instead.
Merge pull request #735 from 7sharp9/SemanticHighlightImprovements

Improve semantic formatting
Remove obsolete fsautocomplete binaries
Merge pull request #736 from rneatherway/issue319

Closes #319
Partial fix for #560

Add filename to returned DomRegion if available.
Merge pull request #737 from 7sharp9/EmptyDomRegionImprovement

Partial fix for #560
Project-aware selection of executable for emacs

Fixes #248

Note that this introduces a backwards-incompatible change to the
fsautocomplete protocol. The project response message is no longer just
a list of files, but now contains two fields:

    Files: List<String>
    Output: String

The latter is the output of the currently loaded project as determined
by the MSBuild API. This is usually a .dll or .exe file. The value is
stored when received in `fsharp-ac--output-file`.

The `fsharp-run-executable-file` function (default keybinding `C-c x`)
has been rewritten to suggest this value if it contains a .exe file. It
is also possible to specify arguments.
Merge pull request #739 from rneatherway/issue248

Project-aware selection of executable for emacs
Ensured FSharpSyntaxMode uses tryCast properly
Merge pull request #741 from 7sharp9/ImproveSyntaxModeTryCast

Ensured FSharpSyntaxMode uses tryCast to avoid NRE