Adding support for using a secondary table to generate unique ids. This allows for pessimistic row locking in transactions to support recovery from a failed transaction and to lock the row so that multiple transactions do not create duplicate sequential ids.

The `:generator_model` is the ActiveRecord model to use for generation and the `:generator_column` is the corresponding unique column used to look up the proper generator instance. Each sequential id should have a unique row bound to a column, such as `:account_id`. This binds each generator to a sequence and allows for the row to be locked during create actions. The model used for generation should have a `sequential_id` column that contains the current sequence number.

The record instance needs to have a matching association that corresponds to `:generator_column` name. For example, if creating a User with a sequential id the business requirement is that the user id should be unique per account. This means that the User model needs an `:account_id` (ex: `belongs_to :account`). This implies that the generator model, which could be an ActiveRecord called `UserId` with an `account_id` and `sequential_id` columns. When an account is created a new UserId instance would also be created and associated with the account. The User model would then have the `generator_model` option set to UserId and the `generator_column` set to account_id. Upon creation, the User will now generate a new id from the UserId row corresponding to the account assigned to the user.