Fixes controller pattern matching, add test coverage

:information_desk_person: The existing pattern matching for controllers misses `application_controller.rb`. 

```ruby
      add_mapping(%r{\Aapp/controllers/(.*)\.rb\z}) { |_, m|
        if m[1] == 'application'
```

These changes update the relevant regular expressions to match those used elsewhere (i.e. L61-2). 

I've also added tests for the remaining pattern matching methods. :lipstick: 

[edit: added further detail around the original problem]
Actually, this is a little more complicated. The pattern catches the name of the controller via
```ruby
add_mapping(%r{\Aapp/controllers/(.*)_controller\.rb\z}) { |_, m|
```
which means that if generated (or sanely named :smiley_cat:) specs exist, they won't get matched by `m[1]`. 

While I'd tried to follow similar logic to that used for helpers, perhaps the way forward is to just match on `application_controller` as a filename and do blanket matches on files otherwise, á la
```
-      add_mapping(%r{\Aapp/controllers/(.*)_controller\.rb\z}) { |_, m|
-        if m[1] == 'application'
+      add_mapping(%r{\Aapp/controllers/(.*)\.rb\z}) { |_, m|
+        if m[1] == 'application_controller'
           files_matching %r{\Aspec/controllers/.*_spec\.rb\z}
         else
-          ["spec/controllers/#{m[1]}_controller_spec.rb"]
+          ["spec/controllers/#{m[1]}_spec.rb"]