Updated async intercpetors to be an explicit option, so as not to create confusion on what gets called when.
A synchronous interceptor will call the *intercepted* method synchronously, independent of how the interceptors are created
A asynchronous interceptor will call  the *intercepted* method asynchronously; after all interceptors have completed