Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
micro-optimization: iterate over the smaller set