file extension as a parameter for ggsave to allow specific device matching

parameter to set if the filename extension cannot inform the proper
device to use (e.g. in a temp file)
descriptive error message in ggsave if device cannot be found from file extension

basically if user tries to ggsave a filename with an unknown extension
ggsave documentation updated for parameter ext

roxygenized