Lazy Arrays

This PR will eventually pull in support for lazily-evaluated arrays in SciDB (i.e. arrays backed by a query string, instead of an explicitly-stored array). Todo before merging:

- [ ] async eval option, as well as connecting ctrl+C to query cancellation
- [ ] reorganize AFL classes into functions which return lazy arrays
- [ ] remove explicit `eval`s inside most SciDBArray methods
- [ ] rethink how AFL functions are bound to interfaces (maybe `afl_operator(*args, interface=None)` is better than `sdb.afl.operator(*args)`, since interface can usually be inferred from input args, and the first option allows multi-import statements like `from scidbpy.afl import filter, project, apply`)
- [ ] Update documentation