Add enable_ssl message handler

This adds an enable_ssl method to the datastore apps to be implemented.
The MySQL implementation drops the key files to a location in /etc/mysql
and drops an extra my.cnf extention with ssl configs.

This also adds a message handler for the mysql message handler to accept
new ssl keys. This handler does not restart the db and can be used to
configure an instance for ssl on existing instances. It will simply
not be available until the instance is restarted.
If it's during the prepare call you're good then since the status will be BUILDING. However if you ever call this from, say, it's own RPC method, you'll want to ensure the status says RESTART.

This is going to be a pain, but what should probably happen if the "restart" method of DatastoreApp should be modified as follows. You need to extract lines 108-112 to create a protected "internal_restart" method that doesn't update the Trove status, then call this from the bottom of what's left in the "restart" method which is intended to be used by other classes (such as the MySqlMessageHandler).

Then in the prepare, change "enable_ssl" to "write_ssl_files" and call "internal_restart". Then leave this method but change the internal_stop / internal_start pair to "restart" and call this method from a new RCP method in MySqlMessageHandler. 

What I'd recommend is you keep the enable_ssl method but take the internal_stop and internal_start calls out. Then call them from the same place where you call enable_ssl in prepare.

Thinking about it now, I wonder if there should have been a different class for DatastoreApp's that did all the internal stuff, and a similar class which called the other one but also updated the status. This has probably gotten a bit too confusing.

Though it's still organized better than Reffy. :smile_cat: :trollface: 
. For now its fine like this.