ILogger.isFinestEnabled check added to prevent unwanted string concatination
Made InvocationBuilder Abstract + Inlines InvocatinBuilder 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.
Merge pull request #1464 from pveentjer/performance/invocationbuilder

Made InvocationBuilder Abstract + Inlines InvocationBuilder creation
Merge pull request #1465 from pveentjer/improvement/3.x/finestenabledcheck

ILogger.isFinestEnabled check added to prevent unwanted string concatina...