Fix a bug with gems not being required correctly from outside Huia.
Add `Huia.require` which caches the output.

This is needed so that when different files require the same dependency
the generated objects are the same, for example:

File `foo.huia`:

```huia
MyException = Huia.requireFile: 'my_exception'

Foo = Object.extend:
  defineMethod: 'explode' as:
    raiseException: MyException withMessage: 'test'

Foo
```

File `bar.huia`:
```
MyException = Huia.requireFile: 'my_exception'
Stdout = Huia.requireCore: 'stdout'
Foo = Huia.requireFile: 'foo'

Bar = Object.extend:
  defineMethod: 'makeFooExplode' as:
    @rescueFrom: MyException with: |exception|
      Stdout.putString: "Exception #{exception.message}"

    Foo.explode

Bar.makeFooExplode
```
Make Huia dependent on Rubinius 2.3.0.
Bump version to `0.4.3`