some enhancements on SeafileApiRequest

- [api] add HTTP put and HTTP delete support for apirequest
- [api] force use PercentEncoding for params in the api request
The code of `put()` and `post()` is almost the same. Can we make a subroutine out of them to reduce the duplication?