Added start_activity function and tests

the opts should be validated as well
```ruby
raise 'opts must be a hash' unless opts.is_a? Hash
```