Overhauled port command completion

Port command completion got smarter. It can now complete paths for the
provides subcommand, and complete pseudo-portnames.

It will complete all ports or only installed ones (for example, when
completing for the uninstall command).

It will complete the select subcommand with appropriate values.