Implement APIs and process for managing site data

See #3, #4 
This function returns False if the database does not exist or cannot be dropped for some other reason (permissions, e.g.).  This should be documented, and possibly the ProgrammingError handling code should check the exception for the 'does not exist' condition and raise an exception otherwise.