Fixes

```
Lumix::DefaultAllocator allocator;

struct A
{
	A()
	{
		data = new int[10];
	}
	~A()
	{
		delete[] data;
	}
	int* data;
};
Lumix::HashMap<int32_t, A> hash_table(allocator);

hash_table.insert(0, A());
```
A's constructor is called once, destructor twice

It's not a good idead to have two methods with the same name that differs only in parameter being pointer or reference