Adding support for custom actions

Still updating the README, but once that's done, we should ship this as 1.3 and then contemplate pulling the flash code into its own library.
If the user passes in a `collection_info` instance, we need `.name`