Add identifier and description to each pledge level

Store the identifier (a unique string) and a description of the pledge
in the pledge database.  This will help us support multiple pledges
that have the same price.

Signed-off-by: Timur Tabi <timur@tabi.org>
Display a menu if the pledge value is not on the command line

It's possible for multiple pledge levels to have the same price, so
specifying the price on the command-line does not work.  There is
a unique identifier, but it's too cumbersome to ask the user to
find it himself.  So instead, if there is no price given on the
command line, prompt the user with a list of all pledges that have
limited availability.

If only one such pledge level exists, choose it automatically.

Signed-off-by: Timur Tabi <timur@tabi.org>