DRILL-789: Left outer join returns "null" values for columns from the right table

The problem is that the "lastSet" field is not set on the Nullable mutator when the vector is loaded off the wire. The fix here is to make sure this gets set.

At the same time, this wouldn't be a problem, except for the fact that we fill in empty values when setValueCount is called, and if "lastSet" is not correct, we end up clobbering the existing data. We shouldn't need to call setValueCount on a transferred vector, so I am making this change in project record batch.
DRILL-809: BitVector.allocateNewSafe fixes.
DRILL-810 : add isSafe() to Nullable value vector. Check nullable value vector has capacity for new value in run-time code.
setSafe() in variable length vector should check has capacity to hold new value.
Bug fixes in Project operator. Use allocateNewSafe() to allocate space for outgoing batch in Project.

Reenable testcase.