Add flush-on-destroy property to TileBackend

Use a boolean to control whether or not data gets flushed when a
buffer is destroyed instead of sniffing the object type.