Support loading multiple objs from a PEM

This is necessary for chained certificate support, as chains are most
frequently represented as multiple certificates in the same file. Our
old code would simple parse the first certificate, then quit.

This patch adds new, collection-returning variants of the primitive
functions that handle all the objects contained in a pem file.