Add a proxy around the `RestTool` class to let the user swap it
Split the runRequest logic in two with generateRequest

so that custom subclasses for `BaseRestTool` can easily plug there logic
Extract the send process from the runRequest to help customize again
Merge pull request #7 from Ledej/enable-resttool-customization

Enable the `RestTool` class to be customized