assets plugin - initial commit - all tests pass

This appears to be the only reason `open-uri` is required.  The issue with `open-uri` is that modifies the behavior of the core `open` method, and I'd really like to avoid that if possible.

Do we really want to support downloads of external assets in this way?  If so, is there an alternative approach that would work?