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 ???
the name of this method doesn't actively communicate to me that it overrides he values in `defaults`, was wondering about that in its usage :) A good name seems to be hard to come by, though. `deep_symbolized_override` ? Sounds... weird.