Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
This is now recursive, PTAL.