Ensure file is loaded with correct encoding

This avoids encoding issues caused by building this gem with newer
versions of Ruby.
Update ignores

- Avoid bundler configuration directory shows as modified
- exclude only top level doc and pkg directories
Relocate extension files into ext/geoip folder

Move things out of root of the gem to avoid things like:

  require "extconf"

Messing things up

Once extension is compiled it will be moved by RubyGems to lib
directory, so there is no need to indicate "." be added to the
$LOAD_PATH
Use RDoc task for documentation

This resolves the deprecation warning caused by usage of old rake.
Compile extension using rake-compiler

This opens the door for cleaner compilation and later add cross
compilation support.
Remove extra slash from doc task
Set test encoding header and remove full path require

Without it, Ruby 1.9.x can't read the test file.

Rake::TestTask automatically adds 'lib' directory to $LOAD_PATH.
Download GeoLiteCity database and use it on tests

Clobber the data files from 'data' when requested.

Also ignore data directory from Git.
Default task is to run tests

Since test already depends on compile
Relocate test file to default 'test' directory

And rename it to match the module it is testing.
Avoid segfault caused by missing region_name

For some country+region combos, region_name might not be found, which
results in a NULL string and causes segfault when strlen() is performed
on it.

Move `region_name` variable definition to conform C89 and please some
compilers.

Add a test that verifies the fixed behavior.
Merge pull request #13 from area17/gem-structure

Improve gem structure