@Nullable
		private TypeElement findBaseClassElement() {
			Protoclass protoclass = protoclass();
			if (!isApplicableTo(protoclass)) {
				return null;
			}
			for (Element t : protoclass.sourceElement().getEnclosedElements()) {
				ElementKind kind = t.getKind();
				if (kind.isClass() || kind.isInterface()) {
					String simpleName = t.getSimpleName().toString();
					Naming typeInnerClassNaming = naming;

					if (!typeInnerClassNaming.detect(simpleName).isEmpty()) {
						return (TypeElement) t;
					}
				}
			}
			return null;
		}
Used to determine if the inner class we're looking for is revelant
given the annotations on the prototype class.  For example, there's
no point in doing anything with an Modifiable inner class if it's
not setup with the Value.Modifiable annotation.
value-processor/src/org/immutables/value/processor/meta/Constitution.java