allocate() cannot be pure or nothrow because emplace() isn't
Lazy initialize and add some operator overloads
Added bulk insert methods