Extract shoes

Here's a solution for our circular dependency problem. Also modified to use the new Shoes gem structure. Requires changes to Shoes in shoes/shoes4#989 that haven't been merged to master yet.

The idea here is for furoshiki to be a generic packager and inject anything project/platform specific. So all of the Shoes-specific code has been removed, and we're left with a packager that can wrap up Ruby code in a .jar or in a .app. There are specs for a Ruby "Hello World" jar, but the app specs are a bit lacking.

I envision the Shoes code that has been removed from this gem living in a `shoes-packaging` gem with the rest of the Shoes code. That way, furoshiki has no dependency on Shoes, and it's the responsibility of shoes-packaging to make sure we have shoes-core available for packaging.

As I worked through this, I realized that we may want the ability to package gems that aren't installed locally as well...but I'm leaving that alone for now.

Thoughts? @jasonrclark @PragTob @KCErb ???
if there's no `validate` method it will silently pass if I'm not mistaken. Is this intended to be subclasses? If yes I'd write a `validate` implementation, that raises an error to force implementing a validate method, as oherwise a validator doesn't seem to be of much use.