More changes and improvements

- Added support for negative index and length in slice functions
- Added es_append
- Added comparison methods