Add Query::firstOrFail()

This method lets you use get() like behavior on any finder. This is
intended to replace #5157.