Add versions of TableQuery.First* that take predicate

It's entirely too easy to accidentally use the extension methods that
already exist, but they generate horrible queries that potentially
build enormous in-memory lists just to grab one element.