Make GetAppliedSelectQuery() public

Due to the semantics of ORDER BY queries it's required to be able to
get the applied SELECT query from the outside. It's better to expose
a public API rather than forcing consumers to replicate the necessary
logic.

The method is currently in the Binder class. The binder is internal
so we can't expose the method there. A more suitable way to expose
this functionality is via an extension method on OrderedQuerySyntax.
Add code fix for expressions that must be grouped

A common issue in SQL is that aggregate functions require that certain
columns must be added to GROUP BY. For example, this query is invalid:

    SELECT  e.City,
            COUNT(*)
    FROM    Employees e

This provides a code fix that will suggest adding e.City to GROUP BY:

    SELECT  e.City,
            COUNT(*)
    FROM    Employees e
    GROUP   BY e.City

Currently, we don't have the notion of a CodeFixProviders.

We only provide a refactoring provider and a code issue provider.
Refactoring providers suggest changes. Code issue providers report
issues and suggest fixes at the same time.

For simplicity, the CodeFixProvider is represented as a specialized
refactoring provider. We should probably make this a first class
concept.
Introduce ICodeFixProvider

Instead of representing code fixes as a special form of a refactoring,
we should represent it as a first-class concept. This also allows to
make sure that code fixes show up before regular refactorings.
Simplify CodeFixProvider
Rename RefactoringTests.cs to CodeRefactoringTests.cs
Fix unit test namespaces
Move NQueryEditorViewCodeActionMargin to Margin folder
Remove fake code action from Actipro
Remove unnecessary usings
Add fix for adding parentheses
Add fix for adding expressions to SELECT DISTINCT