Implented Object IDs for Pooled fixes #48

The IDs are created with a new function on base, construct, and are
set as non-writable properties. This is so when they are released
and cleared, they will not be messed with.
Ensure id properties not enumerable