Fix row count logic when max rows isn't configured; make default rowcount config mandatory

Fixed the following bug -
Expected behavior: if the user doesn't specify a row limit in the query, limit to the configured default-rows-limit.
Actual behavior: if the user doesn't specify a row limit in the query, all rows in the dataset are returned

In the process, I:
Fixed the tests for this and made them a bit clearer
Made default-rows-limit mandatory in the config. The current logic does a getOrElse and defaults to 1000 in the config class, which is confusing. If default-rows-limit is a must, we should just enforce that.
Do we really need BigInt?  Seems like Long would be good enough.