message: Filter out builders that don't extend Object type from the beginning
  Summary:
  There should be no difference shown by stats bot, since we were filtering those
  out later. Filtering out from the beginning, will get rid of unnecessary computation
  steps.
diff: @@ -119,16 +119,10 @@ std::unordered_set<DexClass*> get_trivial_builders(
  const std::unordered_set<DexType*>& stack_only_builders) {
  std::unordered_set<DexClass*> trivial_builders;
  - static DexType* obj_type = get_object_type();
  for (DexType* builder_type : builders) {
  DexClass* builder_class = type_class(builder_type);
  - // Filter out builders that don't extend Object.
  - if (builder_class->get_super_class() != obj_type) {
  - continue;
  - }
  -
  // Filter out builders that escape the stack.
  if (stack_only_builders.find(builder_type) == stack_only_builders.end()) {
  continue;
  @@ -238,9 +232,11 @@ void RemoveBuildersPass::run_pass(DexStoresVector& stores,
  return;
  }
  + auto obj_type = get_object_type();
  auto scope = build_class_scope(stores);
  for (DexClass* cls : scope) {
  - if (is_annotation(cls) || is_interface(cls)) {
  + if (is_annotation(cls) || is_interface(cls) ||
  + cls->get_super_class() != obj_type) {
  continue;
  }
  @@ -272,7 +268,6 @@ void RemoveBuildersPass::run_pass(DexStoresVector& stores,
  }
  std::unordered_set<DexType*> builders_and_supers;
  - auto obj_type = get_object_type();
  for (DexType* builder : stack_only_builders) {
  DexType* cls = builder;
  while (cls != nullptr && cls != obj_type) {
  