Change blueprint lookup

We no longer keep an alist. Instead we just have a list we iterate over to get
the correct blueprint. We also add a method to get the blueprint by name
wihtout raising and another which does.