Add Query::firstOrFail()

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