Hammer task plugin

Allows waiting for async task after the task was triggered.

Usage:

```ruby
class MyAsyncCommand < ForemanTasks::Hammer::AsyncCommand
  action "run"
  command_name "run"

  success_message "Task started with id %{id}s"
  failure_message "Could not run the task"

  apipie_options
end
```

Also, there is `ForemanTasks::Hammer::Helper` with helper methods, if
the `AsyncCommand` class doesn't fit for the case.

The `AsyncCommand` comes with `--async` option so that the command
doesn't wait for the task to finish.

Also, there is a `task` command with `progress` action, showing the
progress for action based on id.