Implement diagnostic SA1500 CurlyBracketsForMultiLineStatementsMustNotShareLine

This implementation is nearly complete, but I'm observing a high rate of reporting for the following situations.

* Lambda expressions with a body

    ```csharp
    Func<int> example =
      () =>
      {
        return 3;
      };
    ```

* `do`/`while` statements

    ```csharp
    do
    {
    } while (expression);
    ```