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 traits isn't optimal for me... when I hear `traits` I think of Smalltalk traits as introduced by Ducasse et al. - a concept similar to modules. There are some ruby implementations like [this one](https://github.com/joecorcoran/fabrik) with some explanation, just irritating for me