Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
Use null as an alias for empty has a long history of making code more complex.