use a real length counter in array objects

NB - still TODO:
- sorting on sparse arrays
- setting of array.length
- Object.keys() should return strings, not numbers
Merge https://github.com/espruino/Espruino into ArrayLength
fixed Array.prototype.join() for sparse arrays and the new length code
don't fill trailing elements on ArrayBuffers
Merge pull request #362 from raybellis/ArrayLength

Array length patches