SequenceServer::App is not self-hosting anymore.

SequenceServer::App was trying to do too much.  Starting a server,
for sure, is not its responsibility.  Moved that bit of functionality
out to bin/sequenceserver.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Update gemspec to include Rack.

We use `Rack::Handler.default` now to pick a Rack handler instead of
(overriding) `Sinatra::Base.run!`.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Ensure -p and -c CLI options are passed an acceptable value.

If not, nudge the user and exit early.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Fix reverse-proxy deployment quirks.

Instruct `Sinatra::Base#uri` to generate URIs taking only `SCRIPT_NAME` into
account, i.e. use absolute path to the asset relative to the server name.
Previously SS would prefix the server name to the path too.  However, depending
on how SS is deployed, using absolute URIs, including server name, for assets
may or may not work.  And even if it does, not a good strategy in my opinion.
For example, if one has SS running on localhost:4567 (default) an example asset
URI would be 'http://127.0.0.1:4567/css/sequenceserver.css'.  This will fail
for public SS installations.  One could use public IP of her server, then the
same asset URI might look like
'http://130.223.48.66:4567/css/sequenceserver.css'.  Now port 4567 must be
open for this to work.  And so on.  Using absolute path relative to server
name works and looks to me like it would work on most setup without hassle.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Remove index generation for multi-query blast search (closes #106).

God knows why index generation was causing results div to be deleted on Chrome.
No point having an index if one can't view the results, so removing the feature
for now.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Revert "Print version number on `sequenceserver -v`."

This reverts commit f1aabea17873fa88f57a94a6cc246f7c674c272d.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Revert "config.ru: setup application environment with Bundler"

This reverts commit 41fae46721bad07ba406b2ce03d427ae51ba2b8d.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Do not use 'bundler/setup' in bin/sequenceserver.

While the executable will work perfectly when SequuenceServer is installed as a
RubyGem, running bin/sequenceserver from the repository can fail:

1. If 'sequenceserver' gem is installed, the executable will load the installed
   gem if RubyGems is loaded instead of loading SequenceServer from the
   repository.
2. If 'sequenceserver' gem isn't installed or RubyGems isn't loaded, the
   executable will fail with a stack trace.

To avoid either just `bundle exec bin/sequenceserver` during development or
when trying to use SequenceServer from git.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Tell RubyGems we don't depend on Bundler anymore.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Remove runtime dependency on Bundler.

Bundler dependency resulted in installation issues for our users because tools
like RVM try to act smart when they see a Gemfile.  In hindsight, what RVM does
when it sees a Gemfile is probably better, like an agreed convention in the
Ruby ecosystem, while SequenceServer was getting in the way by making Bundler a
runtime dependency.  In any case, things can work for us without the Bundler
dependency too.

Merge branch 'remove_bundler' into master.

* remove_bundler:
  Revert "Print version number on `sequenceserver -v`."
  Revert "config.ru: setup application environment with Bundler"
  Do not use 'bundler/setup' in bin/sequenceserver.
  Tell RubyGems we don't depend on Bundler anymore.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>
Do not load RubyGems ourselves.

When gem is installed RubyGems creates wrappers that inject RubyGems into the
environment.  Also, RubyGems is loaded by default in Ruby 2.0.  `bundle exec`
will ensure RubyGems is loaded during development.  And deploy options like
`mod_passenger` tend to load RubyGems and Gemfile.

In short, we don't need to `require 'rubygems'` anywhere in our code base,
except the test suite maybe.  If a user's deploy setup is not behaving as
expected, options such as setting environment variables (like RUBYOPT) or a
deploy script that loads RubyGems should be explored first.

Signed-off-by: Anurag Priyam <anurag08priyam@gmail.com>