Set associative array with a specified key manually

Hi there, thanks for your great job with 1.4.0.

`Returns array with primary ID as the keys` is a good idea, but it would be better if I can specify any field as a key ( and be more compatible with old version). So I made a function to do this named key_by (sorry for my poor English). And there are two notes:

1. Add another property _row_set , sometimes we need a set of row that group by a specified key.
2. I take `if statement` out of `for` in func _instances_with_id_as_key for performance reason.

Thank you.