Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
I added a sort of funky scheme where we prune the message graph lazily as we determine which messages do not have any sub-(sub-...) fields that require interceptions.