Batches can now be created inside Client folders

These batches will accept only ARs for the paret Client, and the
Client field will be hidden and invisibibly filled in with the parent
client's UID.

The batch title is not requred.  It will be set to the batch ID if
no title is entered.

Add getParentUID index.  This should replace the getClientUID index
where it makes sense: they are different things, but getClientUID is
used for both.  Maybe we can get rid of getClientUID altogether.

IATWidgetVisibility: ClientBatchesFieldWidgetVisibility.  This adapter
hides Client related fields when the parent is not a Client (ie,
BatchFolder).  ClientProjectName, ClientBatchID (and Client).

BatchFolder gets a Client column, visible in all display filters. The
Client Batch view subclasses this view, and removes this column again.

Upgrade step: metadata 3052:
- Add Add getParentUID index and reindex
- types tool - allow CLient to contain Batches.

Fix tests for zylinx' work - some of mine are still broken @rockfruit