Dependency fixups

This resolves some lingering issues related to the new dependency features.

The collection returned Formula#deps contains all Dependency objects owned by the formula, including optionals and recommendeds, and we don't want to change this because Formula#recursive_dependencies expects and utilizes this behavior.

So instead, I added helpers for accessing specific categories of dependencies. This makes it possible for `brew info` to be specific when enumerating deps and also to fix the `brew deps --1` bug from #17550.

This would also enable things like `brew deps --optional`, `brew deps --recommended`, etc., but I haven't implemented that.

Example `brew info` output:

```
gtk+: stable 2.24.17
http://gtk.org/
/usr/local/Cellar/gtk+/2.24.17 (1184 files, 50M) *
  Built from source
https://github.com//homebrew/commits/master/Library/Formula/gtk+.rb
==> Dependencies
Build: pkg-config, xz
Required: glib, jpeg, libtiff, gdk-pixbuf, pango, atk, cairo
Optional: jasper
==> Options
--with-jasper
	Build with jasper support
```