Refactor grantable framework for simpler annotation-based approach.

This commit removes the prefix/symbol parsing from all Grantables, such
that it is now entirely up to the parser to trim these substrings off
of the input strings during parsing.

An annotation, GrantableInfo, is introduced as a means of making the
prefixes easier to type out (still somewhat incomplete). With the
annotation, a Grantable class is expected to mark the fromString
method (or a similar method with a different name), specifying in the
annotation what the prefix (and optionally, what the symbol) is for
input strings. Custom Grantables must be registered in the parser for
the parser to be able to correctly trim off prefixes and symbols.