Made InvocationBuilder Abstract + Inlines InvocationBuilder creation

This PR contains the following 2 fixes:

* The InvocationBuilder is now abstract; this makes it easier to introduce
  new fields and simplifies the code
* The InvocationBuilder is not created very every call anymore. So if
  custom configuration needs to be done, the InvocationBuilder can be created
  but a direct invoke on the OperationService doesn't need the InvocationBuilder
  to be created. This will help to speed up performance since less objects
  are being created and less code is being executed.