Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
I plan to play with this some more to minimize the performance impact when no interceptors need to be run for a given nested set of messages.