The YAML parser already uses a BumpPtrAllocator for all its Nodes, but inside
YAMLTraits we still use make_unique for HNodes. This results in lot of malloc
traffic when parsing large or many YAML files.
Most HNode sub-classes can use a simple BumpPtrAllocator, but there are two
sub-classes that need SpecificBumpPtrAllocators to call the proper destructor.
This is a little confusing. Why are you calling Allocate<ScalarNode>() but then actually constructing a ScalarHNode instead of a ScalarNode?