Add kinesis binding & tests
Fix isDefined -> isEmpty
Create unmarshaller for Scala Unit results
Adapt tests to today's Kinesis behaviour: delay and fewer getRecords iterations

Last week, it was delaying returning records in getRecords,
so we had to loop through a large number.

Today, it is returning records immediately, but enforcing the throughput
limit which it wasn't before.  So we can't loop through so many records.

Compromise: reduce the number of loop iterations from 128 to 32, and insert
a pause of 50 ms in between getRecord calls.  That should cover 'reasonable'
behaviour.
Use more idiomatic scala
Use new API: sendX returns an 'Either' future, X folds it to a raw Future