Remove constructor argument from array classes.

This is not used anymore, and is causing issues with
vtkTypeTemplate.

Also cleaned up some constructors to avoid re-initializing
members from base classes and ensure that all members are
initialized.

Change-Id: I103365211ce8289c2f5a5fdb05ccb5126a8fc0e0
Add FastDownCast method to vtkDataArray, vtkDataArrayTemplate.

The vtkDataArray API has several functions that take
vtkAbstractArrays as arguments, SafeDownCast them, and do
work with them. Several of these functions are often called
from tight loops in filters, causing the update to spend more
time doing strcmp trying to downcast the arrays than actually
crunching numbers.

The FastDownCast method takes a vtkAbstractArray, check an enum
value indicating the subclass, and static cast the result. Using
this downcast method in tight loop improves the filter
performance considerably.

Change-Id: Ibb23d10f3f265a4ac6bac21646c9c6f98854edc2
Add a vtkTypedDataArray class and iterator.

The templated vtkTypedDataArray provides an abstract interface to data
arrays with a known data type. This will be used to interact with data
arrays that are not subclasses of vtkDataArrayTemplate, but may be mapped
onto a non-standard memory layout for in-situ processing.

The vtkTypedDataArrayIterator uses the vtkTypedDataArray API to provide
generic random or sequential access into an array without using the void
pointer API.

An Iterator typedef along with Begin() and End() methods are added to both
vtkTypedDataArray and vtkDataArrayTemplate. The former uses
vtkTypeDataArrayIterators for safety, while the latter uses scalar pointers
for speed.

A vtkDataArrayIteratorMacro is added to provide a safe alternative to
vtkTemplateMacro when a non-standard vtkDataArray may be used.

Change-Id: I37c39af140733e5b715c42ab80153257d69a4d44
Allow batch copying of data set attributes.

This allows filters to copy many tuples at once, reducing the
overhead of copying many points.

Change-Id: I29089d761697fe110b85820254fceb0d2d7b1121
Merge branch 'master' into data-array-refactor

Conflicts:
	Common/Core/vtkDataArrayTemplate.txx

Change-Id: I17e55e81c48ea90f5312553bbc1d0aab3fe7714a
Merge topic 'data-array-refactor' into master

33153716 Merge branch 'master' into data-array-refactor
c5412efc Allow batch copying of data set attributes.
0cd8cf34 Add a vtkTypedDataArray class and iterator.
dc536f10 Add FastDownCast method to vtkDataArray, vtkDataArrayTemplate.
a8247f0a Remove constructor argument from array classes.