Cleanup the C++ generator
Cleanup the C++ generator

Summary:
Similarly to D38471514 (https://github.com/facebook/fbthrift/commit/e2ab59885dcbbf5988eaf865bc9a3ee4931efbff):

* Remove the remaining mstch factories in the C++ generator.

* Use the same mstch type ordering as in `t_mstch_objects.h` for easier navigation.

* Tweak naming a bit, e.g. `mstch_cpp2_function` -> `cpp_mstch_function` because it doesn't denote a C++ function but an `mstch_function` object for C++ and since we are moving away from cpp2 to cpp elsewhere (e.g. annotation names).

* Put everything in the anonymous namespace since the only way to access a generator is via `THRIFT_REGISTER_GENERATOR`.

Before:

```
class cpp2_typedef_factory : public mstch_typedef_factory {
 public:
  explicit cpp2_typedef_factory(
      std::shared_ptr<cpp2_generator_context> context) noexcept
      : context_(std::move(context)) {}

  std::shared_ptr<mstch_base> make_mstch_object(
      const t_typedef* t,
      const mstch_factories& factories,
      std::shared_ptr<mstch_cache> cache,
      mstch_element_position pos) const override {
    return std::make_shared<mstch_cpp2_typedef>(
        t, factories, std::move(cache), pos, context_);
  }

 private:
  std::shared_ptr<cpp2_generator_context> context_;
};

void t_mstch_cpp2_generator::set_mstch_factories() {
  ...
  factories_.typedef_factory = std::make_unique<cpp2_typedef_factory>(context_);
}
```

After:

```
factories_.set_typedef_factory<cpp_mstch_typedef>(context_);
```

Reviewed By: iahs

Differential Revision: D38510750

fbshipit-source-id: 12475f4e1e574bc83a7445da09d4e300f7bfa415

facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift