Transaction_id param for Fedex CustomerTransactionId

Refactors Fedex rate lookups.
Allows passing in a ```transaction_id``` to be used for a ```TransactionDetail.CustomerTransactionId```.

cc @costford @csaunders 
You mean something better than `'ActiveShipping'` if `transaction_id` isn't provided? Have any ideas? Rather than a static string, if this is an idea how about something like `SecureRandom.uuid`?