Extended DynamoDBMapper to allow more control over table name.

Added TableNameResolver (by class) and ObjectTableNameResolver (by
object) to DynamoDBMapperConfig that can be used to completely override
the way DynamoDBMapper determines table names. If no
ObjectTableNameResolver is configured DynamoDBMapper will use the
object's class with the configured TableNameResolver. If no
TableNameResolver is configured DynamoDBMapper falls back to
DynamoDBMapperConfig.DefaultTableNameResolver which mimics the previous
behavior of DynamoDBMapper.