Make number of header lines configurable

I want to reference columns by an id in a header row, which is exactly what Worksheet#list() does ... except I have two header rows, the first being the ID row and the second a human-readable description of the column.

I extended list() with an optional parameter for the number of header rows.  The first row is still the one used as the ID, but it ignores the number of rows specified by the argument.

Since the result of list() is no longer invariant, I changed the code not to cache the returned object.  List just references back to Workspace, so it's instantiation should be very cheap (especially compared to network latencies).