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 ???
Yes, you're right. This generic validation class does no checking and reports valid. I think this is legitimate. The point is that we can subclass the validator and implement the validate method to do custom validation. If we raise an error here, then you have to subclass even if you don't have any validation to do, which seems kind of silly.