Move lib/{sidekiq_spy,sidekiq-spy}/, cleaning.

The top-level directory `sidekiq-spy/` and file `sidekiq-spy.rb` will
be exceptions to the usual underscore convention, to prevent future pain
with - vs _ requires.
Set up MiniTest, testing VERSION.

To run all tests:

    rake test

Or, if you're of that Turn of mind:

    turn test/
Implement App,Config , with a profusion of settings.

There will be no uninstantiated polution here. ;) Instead, create a new
`App`:

    @app = SidekiqSpy::App.new

and then configure it:

    @app.configure do |c|
      # configure
    end

Set `Config` to default to sensible things.
Implement sidekiq-spy executable.

The usual manner of using sidekiq-spy will be through the executable.
Parse config, document with a detailed `--help`, and create and configure
an `App`.

To run sidekiq-spy:

    ./bin/sidekiq-spy --help

This is installed as the executable `sidekiq-spy` by the gemspec.
Merge branch 'skeleton' into develop
Install Sidekiq, configuring in App#configure_sidekiq .

Add `Config#url` getter for retrieving connection string URL, using to
configure Sidekiq in `App#configure_sidekiq`, where Sidekiq is set up
using the settings of the configured `App`.

Lock Sidekiq to major version.
Implement Spy::Stats, retrieving general Redis and Sidekiq stats.

Fetch the following Redis stats from the connection:

  `#connection`, `#namespace`, `#redis_version`, `#uptime`,
  `#connections`, `#memory`, `#memory_peak`

and the following Sidekiq stats from the API:

  `#busy`, `#enqueued`, `#retries`, `#scheduled`, `#processed`, `#failed`

These are the principal stats on the Dashboard page of `Sidekiq::Web`.
Merge branch 'sidekiq-stats' into develop
Fix Spy::Stats all-0 when empty namespace.

It is necessary for `:namespace` in `Sidekiq.configure_client` to be
`nil` when it is empty, rather than `''`. Change the `Config` default.
Implement App#start,#stop , running from executable.

Start the `App` with `#start`, which sleeps for `config.interval`. The
snoozing is done in 1-second increments, however, to facilitate stopping
within 2s if `@running` goes to `false`. Trip SIGINT, setting `@running`
to `false`.

Provide hooks `#setup`, `#refresh`, `#cleanup`.
Disable Sidekiq logger.

Completely disable the Sidekiq logger; we have nowhere to display the log
messages, anyway! ;)
Define mixin Translatable, for human-facing strings.

For in-program display, mix in `Translatable` and use `#t`.
Curses! Implement Display::Screen,Panel,Subpanel.

Implement `Display::Screen`, which handles the main control of the
terminal screen, including destruction. Implement `Display::Panel`,
which handles a defined area of the screen (using `Curses::Window`),
and builds `Display::Subpanel`s from a structure definition. Implement
`Display::Subpanel`, which writes key-value-style data to a portion of
the screen, and updates content by calling a lambda.

`Display::Panel`s should be installed in `Display::Screen` by the supply
of structure and data information. This allows refresh commands to travel
the chain `Display::Screen` -> `Display::Panel` -> `Display::Subpanel`.

Wire up `App` with a `Display::Screen`.
Construct fully-operational header panel.

The header panel displays program, Redis, and Sidekiq stats metrics,
using `Spy::Stats` and snazzy lambdas.

The structure for a panel is:

- an array of rows/lines
- each containing an array of length 3 (yup)
- each of the structure: [relative width, left-aligned, right-aligned]

Dividers are used to ... wait for it ... divide (columns).

This makes the program operational, with main stats monitored. Hurrah!
Merge branch 'panel-header' into develop
Slashify .gitignore.

If you'd really like to know why: ;)

    https://github.com/github/gitignore/pull/616
Write README.
Add description,summary,homepage to gemspec.
Merge branch 'release-prep' into develop
Configure https://travis-ci.org .