generate_benchmark now generates a more meaningful benchmark, with a component per file (that installs the necessary other components).
Change component dependencies to avoid calling the same getComponent() more than once in the whole system.
Increase the number of loops in the benchmark.
Add a bench.sh script to run the benchmark multiple times and report the average.
Split InjectorStorage out of ComponentStorage.
Use (unsorted) vectors in ComponentStorage instead of hash tables.
Change the representation of a BindingData, now occupies 2 pointers instead of 4.
Fix performance bug that caused a copy in install() even when a temporary was passed.
Remove the now-unused getBindingData and getBindingDataSetForMultibinding from InjectorStorage.
Refactor the access to bindings in InjectorStorage, in preparation of the change of representation.
ComponentImpl now stores a ComponentStorage directly, not through a unique_ptr.
Disable assertions when benchmarking.
Store 2 bindings instead of 3 in ComponentStorage.
Use sorted vectors instead of hash tables in the injector.
Revert "Use sorted vectors instead of hash tables in the injector." Hash tables are slightly faster.

This reverts commit d00d6935fca253cfc4254df759db4a83f9172022.
Insert the bindings in the hash table using a range insert instead of one at a time.
Update benchmark: change the number of injected types, reduce number of includes.
Change the benchmark to use both registerConstructor and bind in each component.