Eliminating unnecessary speller creation/deletion.

Previously, an internal speller object was created and destroyed for every call
to #correct? and #suggestions. Now, an internal speller object is only
allocated when the initial FFI::Aspell::Speller object is created and when its
configuration changes.

This does make the API more complex since users now need to call #close (or
use #open), but the performance gains are significant, yielding up to 300x
throughput in testing.
Updating README with Speller.open example.
Adding tests for Speller.open, #close, #closed?
Ignoring generated YARD doc directory.
Removing finalizer when closing speller.

We manually free the resources on #close, so there's no need for the finalizer
to run.
Fixing Aspell config memory leak.

Before, we were creating a new Aspell FFI configuration object, but never
actually freeing it. We now free it in the finalizer or when the user explicitly
calls #close on the speller.
Adding closed? checks to public API calls.

If the speller is ever closed, all public API calls (except #closed?) should
raise an error. This keeps the internal state of the speller consistent after
being closed.
Formatting YARD documentation for consistency.
Move #check_closed to be with private methods.
Add tests to ensure API calls throw after close.
Minor perf improvement for #closed?

We only need to check if @config is nil to determine if the speller is closed.
Implementing feedback from PR #17.
Simplifying speller closed status test.
Merge pull request #17 from schmich/perf-hybrid

(Hybrid) Improving performance by eliminating unnecessary speller creation and deletion