Add since(...) specifiers

These are used to decide which order the fields and methods of an object
appear in its native representation.
For constructors and static methods, they are only used to retain
backwards compatibility. Two can have the same type signature if they
have different since(...) specifiers, but everything trying to use them
will use the latest one.
For static fields, they are not used, but are stored for consistency.
For classes and compound definitions, they are allowed but not used for
anything or even stored in pbc files.