extended ADD_NEW_ITEM macro to accept multiple types of ItemData constructors.

Previously ADD_NEW_ITEM() supports the only the following constructor.
- ItemGeneric(T data)

This version also accepts the following constructor.
- ItemGeneric(ItemId id, T data)