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