Add cop PercentQLiterals

Checks `%Q` vs `%q`, and allow configuration to decide
if `%q` should be used when possible or if `%Q` should
be used always.

For #835.
[Refactor] Move common logic from on_percent_literal to caller
Merge pull request #1205 from jonas054/835_percent_q_case_cop

Add cop PercentQLiterals
Fix error at anonymous keyword splat arguments

This fixes #1201.
Merge pull request #1206 from yujinakayama/fix-error-at-anonymous-keyword-splat-arg

Fix error at anonymous keyword splat arguments
Fix false positive in UnneededPercentQ for /%Q(something)/

Regular expressions starting with % or %Q were treated
as string literals starting with those delimiters.

Related to #835.
Merge pull request #1208 from jonas054/fix_unneeded_percent_q

Fix false positive in UnneededPercentQ for /%Q(something)/
[#835] New cop BarePercentLiterals

The style guide says:
Use %() (it's a shorthand for %Q) for single-line strings
which require both interpolation and embedded double-quotes.

This cop's job is to check that you use % rather than %Q,
or the opposite if so configured.
Merge pull request #1209 from jonas054/835_bare_percent_literal

[#835] New cop BarePercentLiterals
Fix `SpaceInsideBrackets` for `Hash#[]` calls

If a `Hash#[]` call has spaces after the left bracket (e.g. `hsh[
:key]`), it didn't get detected as an offense.

Because a left bracket can be either of the type `:tLBRACK` or
`:tLBRACK2`.

Fixed by allowing multiple types for the left side in `SpaceInside`.
Refactor bracket checking in SpaceInside mixin
Merge pull request #1212 from mcls/fix-space-inside-brackets

Fix `SpaceInsideBrackets` for `Hash#[]` calls
New cop: MultilineBlockLayout
Merge pull request #1079 from barunio/newline_after_multiline_block_start

New cop: MultilineBlockLayout
[Fix #1210] Fix false positive in UnneededPercentQ for %Q(\t")

We've said that %Q can be used for dynamic strings that contain
double quotes. Dynamic strings must include strings with special
characters such as \t and \n, not only strings with interpolation.
Make UnneededPercentQ spec easier to read

There were so many kinds of strings. It got complicated,
so a few heredoc strings are helpful, I think.
Fix false positive for heredoc strings in UnneededPercentQ
Merge pull request #1216 from jonas054/1210_fix_unneeded_pq

Fix UnneededPercentQ
`Style::EmptyLinesAroundAccessModifier` cop does auto-correction.
Merge pull request #1217 from tamird/trailing-comma-autocorrect

`Style::EmptyLinesAroundAccessModifier` cop does auto-correction.