Add Fiji's extensible primitive type arrays

In Fiji (actually, in the Virtual Insect Brain project), we needed
primitive arrays that are more performant than the boxed
ArrayList<Double> (actually, in the VIB project, we did not have Java 5
yet, so we required the implementation anyway).

This developer implemented the classes from scratch, based on ideas
floating about on the net, hence it is no problem to re-license them to
the BSD license as required by ImageJ2.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add resizable array list implementation

This code is necessary because there is no built-in public way to resize
an ArrayList. You can request the size with size(), add or remove
elements one at a time, or in batches, but cannot simply say "set the
size to X" while leaving any new elements as null, or efficiently
purging old extra elements.

For removal, the best you could do with the public API would be
repeatedly calling remove(size() - 1). However, ArrayList has a
protected removeRange(int, int) method that does the trick.

For addition, you can call ensureCapacity(int) to make sure the internal
array is large enough, but then there is absolutely no way to update the
size field; it is private. So we must resort to reflection.
PrimitiveArray: implement Sizable interface
PrimitiveArray: implement List<BaseType>

Implementing the List interface makes these classes much more flexible,
fully as convenient as ArrayList with boxed types, but still much more
performant as long as you do not lean on the boxed methods too heavily.
PrimitiveArray: add ByteArray class
PrimitiveArray: add ShortArray class
PrimitiveArray: add LongArray class
Merge branch 'arrays'

This branch adds a type hierarchy for extensible primitive arrays,
modeled after java.util.ArrayList, but more performant.

For primitive type arrays, java.util.ArrayList is not a good choice
because it uses boxing and unboxing to store the elements, leading to a
large memory footprint as well as performance penalties.

This implementation was adapted from the original one written by
Johannes Schindelin, from Fiji's VIB project.
Do better bounds checking for very large arrays

When we get near Integer.MAX_VALUE array elements, things get a little
trickier. This commit introduces checks in a couple of key places to
avoid overflow, and throws an exception if things get too large.
SizableArrayList: fix bug in setSize method
Add initial ResultsTable implementation

This is the core data structure for results tables. We still need a
TableDisplay and TableDisplayViewer.
Improve display viewer package & class hiearchies

The package naming is now more consistent, with "viewer" instead of
"display" used everywhere for the DisplayViewer, DisplayPanel and
DisplayWindow class hierarchies.

Each type of viewer now resides in its own subpackage: *.viewer.image
for ImageDisplayViewers, and *.viewer.text for TextDisplayViewers.

Each type of viewer now has its own DisplayPanel subinterface, which
narrows the return type of the getDisplay() method to the corresponding
Display subtype (i.e., ImageDisplayPanel returns an ImageDisplay, and
TextDisplayPanel returns a TextDisplay).

The DisplayViewer subinterfaces' getDisplay() methods perform analogous
type narrowing (i.e., ImageDisplayViewer returns an ImageDisplay, and
TextDisplayViewer returns a TextDisplay).
Add a test plugin for results tables
Add a results table display viewer
Merge branch 'results-table'
WindowService: fix NPE with null display names
Fix name of script POM project to match the others

All ImageJ2 POM projects are prefixed with "pom-ij-".
ij-script-beanshell: fix dependencies

1) Use ij-core instead of ij-ext (since ij-ext was merged).
2) Remove unused sezpoz dependency.
3) Add a blank line between project dependencies and third party ones.
ParameterTester: add label to output string
DisplayPostprocessor: tweak style