BER decoding: Don't allow primitives with indefinite lengths

According to the BER encoding rules, only constructed values may
have indefinite lengths. A primitive value must be encoded with
a definite length.

Reported-by: Simon Cornish