Implement a new version of select() API

This patch introduces backward-incompatible changes to select()
and adds couple new methods:

  * index:select(key) -> tuple, tuple, ... was changed to
    index:select(key, opts = {}) -> { tuple } where opts can be

       - iterator = ALL if key == nil or key == {} | EQ otherwse
       - offset = 0
       - limit = unlimited

  * index:get(key) -> tuple | nil | error on more than one tuple
    a wrapper for select() to get the single tuple

  * space:put(tuple) -> tuple
    an alias for space:replace() (to provide integrity with get())

Test suite, box.space and box.net.box API were also updated to
meet changes.
select-new-api-v2: review fixes