Minor fixes

- Optimized `datalist` by leveraging closure scope
- Optimized `element` methods by changing accepted params and removed instanceof validation (minor speed boost & better error when debugging)
- Updating `datalist.pages()` to leverage closure scope & removing a mutation
- Fixing `element.destroy()` by sending the `Element` to `observer.remove()`
- Updating `observer.remove()` to use the same variables as `observer.add()` for consistency