Add a couple of useful operators to THaArrayString

Cast to const TString& allows THaArrayStrings to be used in many
places where a TString is expected.

operator[] replaces the awkward idiom
   const Int_t* avar = var.GetDim();
   ... avar[i] ...
with a simple
   ... var[i] ...

operator! offers the shorthand !var instead of var.IsError().
Extend support of fixed-element RTTI variables to multi-dim arrays

One can now define variables like

RVarDef vars[] = {
  { "oned",   "1D array",  "fArray" },
  { "elem0",  "fArray[0]", "fArray[0]" },
  { "elem1",  "fArray[1]", "fArray[1]" },
  { "twod",   "2D array",  "f2D" },
  { "elem02", "f2D[0][2]", "f2D[0][2]" },
  { "elem30", "f2D[3][0]", "f2D[3][0]" },
  { 0 }
};

where fArray and f2D are fixed-size array member variables.
Previously, only 1-d arrays were supported.
Begin setting up unit tests in tests subdirectory

Our first (prototype) unit test verifies global variables of arrays
and array elements when those variables are defined via RTTI.
Usage example:

gSystem->Load("tests/libTests.so");
ArrayRTTI* t = new ArrayRTTI();
t->Init();
t->Test();

Test() should return 0. On error, a message is printed, and a value != 0
is returned.

Call t->SetDebug(1) or (2) to increase verbosity during Test().

There's a lot more to come here.
Add support for defining global variables on std::vector via RTTI

Currently supports the four vector types that are supported by THaVar:
vector<int>, vector<unsigned int>, vector<float> and vector<double>.

More types should be added at some point, in particular vector<bool>
and vector<Long64_t>.

Closes #57
Add unit test for defining std::vector global variables via RTTI