Stop & Kill options for containers removal

Closes #6533

**docker rm**:
`-f/--force`: deprecation warning.
`-s/--stop`: stop then remove a container.
`-k/--kill`: kill then remove a container

**API**:
`DELETE /containers/(id)`
`DELETE /containers/(name)`

`force`: stop then remove a container.
`kill`: kill then remove a container.
```go
func (container *Container) Stop(seconds int) error {
	if !container.State.IsRunning() {
		return nil
	}

	// 1. Send a SIGTERM
	if err := container.KillSig(15); err != nil {
		log.Print("Failed to send SIGTERM to the process, force killing")
		if err := container.KillSig(9); err != nil {
			return err
		}
	}

	// 2. Wait for the process to exit on its own
	if _, err := container.State.WaitStop(time.Duration(seconds) * time.Second); err != nil {
		log.Printf("Container %v failed to exit within %d seconds of SIGTERM - using the force", container.ID, seconds)
		// 3. If it doesn't, then send SIGKILL
		if err := container.Kill(); err != nil {
			container.State.WaitStop(-1 * time.Second)
			return err
		}
	}
	return nil
}
```
considering that `container.Stop()` takes seconds and do `time.Duration(seconds) * time.Second`, I am not sure that's a good move, what do you think ?