Add basic support for interceptors

@JakeWharton @jhump @swankjesse 
Why is the behavior different? setsIntersect(someSet, emptySet) and setsIntersect(someSet, null) both return false.