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.
Someone with more ruby knowledge is going to have to help me out here - will the `return` statement here correctly assign the value to `@bsevn` and then return from the method?

Doing some local testing in IRB, I don't think so:
```ruby
2.1.1 :032 > def test
2.1.1 :033?>     @tt ||= begin
2.1.1 :034 >           File.open('/Users/tball/README.md') do |foo|
2.1.1 :035 >               return Time.now.getutc
2.1.1 :036?>           end
2.1.1 :037?>       end
2.1.1 :038?>   end
 => :test
2.1.1 :039 > test
 => 2014-10-16 12:05:25 UTC
2.1.1 :040 > test
 => 2014-10-16 12:05:26 UTC
2.1.1 :041 > test
 => 2014-10-16 12:05:27 UTC
2.1.1 :042 > test
 => 2014-10-16 12:05:28 UTC
2.1.1 :043 > test
 => 2014-10-16 12:05:29 UTC
```

However, if I remove the `return` statement, it works correctly:

```ruby
2.1.1 :044 > def test
2.1.1 :045?>     @tt ||= begin
2.1.1 :046 >           File.open('/Users/tball/README.md') do |foo|
2.1.1 :047 >               Time.now.getutc
2.1.1 :048?>           end
2.1.1 :049?>       end
2.1.1 :050?>   end
 => :test
2.1.1 :051 > test
 => 2014-10-16 12:07:04 UTC
2.1.1 :052 > test
 => 2014-10-16 12:07:04 UTC
2.1.1 :053 > test
 => 2014-10-16 12:07:04 UTC
2.1.1 :054 > test
 => 2014-10-16 12:07:04 UTC
```