NH-3675

https://nhibernate.jira.com/browse/NH-3675
Initial implementation with unit tests
Following if-then-else can be replaced with only one
```csharp
var abstractEntityPersister = persister as AbstractEntityPersister;
if (abstractEntityPersister != null) {
    table.TableName = abstractEntityPersister .TableName;
}
```
Because SingleTableEntityPersister, JoinedSubclassEntityPersister, and UnionSubclassEntityPersister inherit AbstractEntityPersister and TableName is it's property