Explicitly define and require dependencies

When using Ransack in situations where the dependencies aren't loaded ahead of time (e.g. when using `Bundler.setup` instead of `Bundler.require`), Ransack raises errors when being required, since it doesn't specifies its own dependency requirements.

I've gone ahead and defined the Active Support and I18n gems dependencies, since they're used through Ransack.

I also added require statements wherever those particular libraries are used, but limited it to only pull in the pieces of Active Support that are actually needed to minimize the overhead and make the dependencies clearer.

I've also added a simple spec to ensure that Ransack can be required without any errors in a fresh environment.