So worst case, Errno:ENOMEM is thrown again and its then subsequently caught in puppet/application/face_base.rb and then if thrown again it is not caught and gets to bubble up.

Best case, Errno:ENOMEM is caught, logged and displayed to the user, and then a system exit is sent.

So basically, no matter what, the user is going to see the Errno:ENOMEM exception.  I'm not seeing the issue with this PR.

Also, if you look at the code that used to catch parser exceptions its
```
  rescue Exception => detail
    Puppet.log_exception(detail)
    Puppet.err "Try 'puppet help #{@face.name} #{@action.name}' for usage"
```
All face's have a blanket exception catching done on them.