In Solaris 11.2, the `-T` option has been added (for timeout) and `restart` can now take `-s` to wait until the restart has finished.  So we need this function to support:

```
/usr/sbin/svcadm [-v] restart [-s [-T timeout]] {FMRI | pattern}...
```

The `-v` flag can be added in debug mode which prints actions verbosely to stdout.

The `-s` flag can be added when a `sync` option is passed to the subroutine.  This requests a synchronous transition, instead of the default of asynchronous.  In this mode, `svcadm` will not return until the restart operation is complete.  By default, `svcadm` returns as soon as the restart operation has been triggered.  Note that in asynchronous mode, the exit status of `svcadm` is usually 0 and does not indicate whether the service was successfully restarted or not, as it did not wait to find out.

The `-T <timeout>` option can be added when both `sync` and `timeout` options are passed to the subroutine.  In this case, `svcadm` will wait for the restart to complete or up to a maximum number of seconds provided as the timeout value.  If the timeout was reached, `svcadm` returns exit status 5.