Extend user add api to allow adding users like from admin panel

- Add force_random_password parameter to have password of new user set
  randomly and expired
- Update docs
- Update tests

This is a remake of my [old PR](https://github.com/gitlabhq/gitlabhq/pull/4805) that was abandoned since things about how user registration/signup works were expected to change soon. Since it's been a year and the PR is still applicable, I'm resubmitting it. I've heavily polished and simplified it.

It simply adds a new parameter to the /users POST api call that allows to trigger identical behaviour to adding users from the admin panel: Setting the newly signed up user as already confirmed and with an expired password, resulting in a "You have been added to Gitlab, click here to set a password" email.

As a bonus, I've also fixed two tests for that API call that were succeeding for the wrong reasons.
I think you may be right that it's unnecessary, but the [admin controller](https://github.com/gitlabhq/gitlabhq/blob/master/app/controllers/admin/users_controller.rb#L47) does the same thing.

If I read the user model correctly, it *should* call generate_password on its own if needed ([before validation](https://github.com/gitlabhq/gitlabhq/blob/c5678d4ecb9e557c9e70ddddbef493470d2fc229/app/models/user.rb#L125)).

The explicit call is in the admin controller because of issue #5431. Since passwords are no longer sent it can probably be removed!

Should I go ahead and do that both in the API and the admin controller code?