try-except common case in get

Get is presumably most often used with a single input where the desired
operation of get(ind, val) is just val[ind].  We do this up front with a
try-except block.

This hurts performance on the list syntax

    get(indicies, val) -> [val[i] for i in indices]
                          if isinstance(indices, list)

But performance there wasn't so great to begin with and it doesn't
degrade as significantly as the single index case improves

Single index
Before: Ran 1 test in 0.058s
After:  Ran 1 test in 0.025s

Multi-index
Before: Ran 1 test in 0.307s
After:  Ran 1 test in 0.408s
curry mimics partial's interface
first and second iterate rather than index

This degrades performance but maintains correctness.  See tests

Benchmarked with bench/test_first.py
Before: Ran 2 tests in 0.285s
After:  Ran 2 tests in 0.705s