Make LoadDataForInput and LoadDataForInPlace more consistent.

The ArrayManagerExecution and ArrayTransfer classes have
LoadDataForInput and LoadDataForInPlace methods to copy input data from
the control environment to the execution environment. Previously,
LoadDataForInput accepted a const array portal from the control
environment whereas LoadDataForInPlace accepted an ArrayContainerControl
object.

The ArrayContainerControl object was given in case a shared array
manager needed to allocate space. However, since the input array already
exists, there should be no need to ever allocate space in the control
environment. Thus, LoadDataForInPlace no accepts a non-const array
portal to be more consistent with LoadDataForInput.
Merge branch 'consistent-LoadData'
Minor corrections to ArrayTransfer of zip container.

Added some safety checks to make sure that ArraysValid was true before
using the arrays. Also minor fixes to comments.
Merge branch 'zip-container-corrections'
Remove dependence from TBB to thrust.

The TBB device adapter has no dependence on the thrust library at all.
Thus, it should not be including any files from the thrust package.
However, ArrayManagerExecution for TBB was inheriting from
ArrayManagerExecutionThrustShare for no particular reason. This has been
changed to the more appropriate ArrayManagerExecutionShareWithControl,
which is located in the cont package.

I also deleted some unnecessary typedefs inside the TBB
ArrayManagerExecution.
Merge branch 'tbb-without-thrust'
Fix issue with error message buffers in TBB schedule.

The TBB schedule kernels catch exceptions within threads so that they
may be written to the error message buffer and later thrown in the
control environment. There was a mistake where the error message buffer
was not set in the schedule kernel (only the functor it called) so any
such exception would cause a write into a non-existing buffer.
Merge branch 'tbb-error-message-buffers'
Add UpperBounds with comparison object.
Merge branch 'upper_bounds_comparison'