bug 1066058; add Support Reason API crashstorage type

*Preamble: This PR is primarily submitted for discussion purposes (I expect more work to be necessary).*

This adds the `SupportReasonAPIStorage` class which is a sub-class of `BotoS3CrashStorage`; functionally speaking, the former is basically a *highly lossy* implementation of the latter.

cc @twobraids 
that ```staticmethod``` decorator is not a bug, it is required.  It is the the ```self``` variable name that is the problem, as it is deceptive: it should be called something like ```boto_s3_store```.   Notice the form of the parallel method for raw crashes ```do_save_raw_crash```.  Instead of ```self```, it uses a different name.

Background:  The method that is the focus of this problem is intended to represent a single re-triable transaction with an instance of the ```TransactionExecutor``` class.  To be compatible with ```TransactionExecutor```, a function must accept, as its first parameter, a connection to the transactional resource.  When the transaction is run, the instance of the ```TransactionExecutor``` will pass the connection to the method.  For external resources like PG or HB, this is easy, the connections are a separate class defined as ```ConnectionContext```.  BotoS3, however, is a protocol that doesn't keep a persistent connection as it is based on HTTP.  The crashstorage class itself stands in as connection object.

So ```self``` does make some sense here as the parameter passed in by the ```TransactionExecutor``` will be an instance of right class.  ```self```, though is a poor choice as it makes the code look like an error. 

Suggested course of action:  
1) leave the ```staticmethod``` decorator on the method
2) rename ```self``` to ```boto_s3_store```  (in both your class & and the ```BotoS3CrashStorage```)