Implemented negative indexing to count from the end of an indexed sequence

To resolve issue #113 and provide a nicer interface, I've implemented negative indexing in the `get` method of IndexedSequence, ArraySequence and Vector. This counts from the end of the sequence, so -1 returns the last value. I reimplemented `get` for ArraySequence, because it didn't appear to be working before. Accessing an index which is negative and beyond the bounds of the sequence now returns the notSetValue, rather than throwing an error.

Tests have been added for the new feature, and all the old tests and the linter pass. I've updated the type definitions to document the new feature.