Added support to get & delete with a generic struct K as the key instead of an int

This lets us use a string as a primary key without needing to write
custom inserts
IsEditable should now work properly if a propertyinfo object has mutiple data attributes