RestConnection: Simplify request header + param handling

Created two new classes UrlParam and RequestHeader which extend RequestParam
Each rest method GET, PUT, POST AND DELTETE take an array of RequestParam
Based on Class type, RequestHeaders will be added as request headers and
UrlParams will be added as url params to the url.
Decomposed request retry logic into smaller methods as well

Testing Done: Ran Unit Tests.
Manual testing.
Bug Number: none
Reviewed by: trivial