add service provider for OpenBSD

Adds a service provider for OpenBSD. This was split off of another pull request: #2177. This initial commit has the proposed logic in place. I copied the tests from the FreeBSD provider and fixed them, but that's not good enough--the tests don't yet cover what they need to. I'll be taking another pass at them, but I didn't want to wait on that to get the discussion started on the rest of the code.
Yah, I copied this from the FreeBSD provider, but I think I may as well just use match().