Add functionality to automatically determine filename.

This change allows cstore_fdw to automatically determine the file name used to store its files.

This change makes the filename parameter optional and will use it if specified. If filename is not specified, then cstore_fdw would use $PGDATA/cstore_fdw/{database-oid}/{relfilenode} as the path for storing its files
Can two backend processes arrive here concurrently? If yes, then what happens if for example DirectoryExists() returns false in both and they both try to CreateDirectory()? 

In tablespace.c at TablespaceCreateDbspace() in a similar situation they acquire some locks.

Sorry for not spotting this in the earlier code review. I think this is minor and not very likely, so we can just note this in our todo lists and look into it later.