print better profile output

turns out that apache commons has a stopwatch class that makes this
super easy.
BatchIterator can accept empty iterators

This was a problems when used with SqlIterator.  Suppose a source has
 a table with nothing in it, the sqlplus endpoint would fail.
 Iterator conversions from Lists and iterators in general now can
 accept empty iterators.
Merge pull request #118 from metridoc/empty-iterator-ok

Empty iterator ok