Supports subclassing Entities to an arbitrary depth, and on relationship entities

nb: first of all, apologies for the white-space deletions, my IDE cleaned them up. I can resubmit without, if that's much easier.


I extended the extent to which MMRecord detects and uses Entity subclasses ( i.e. when it queries `shouldUseSubEntityRecordClassToRepresentData`). It now supports beyond a single level of subclassing (i.e. it checks recursively), and also allows *relationship* entities to be matched to a subclass as well, as in this example:

A: it will now support Account subclassing for the following example:
'''
{
  "client": {
    "portfolios": {
      "accounts": [
        {
          "account_id": 123,
          "account_name": "Joe Bloggs",
          "account_type": "current-account"
        },
        {
          "account_id": 456,
          "account_name": "Joe Bloggs",
          "account_type": "savings-account"
        }
      ]
    }
  }
}
'''

Feedback is very welcome