Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
Yes.

But I'm having a hard time thinking of a use case where you *don't* want it to be recursive. It seems painful to require *every* interceptor implementation to be recursive.

Just my two cents.