Add support for the Rust language.

Rust is a programming language developed by Mozilla: www.rust-lang.org
OTWO-1206 Updates SWIG bindings to Ruby 1.9.2

- Requires SWIG 2.0.4 (SWIG 1.3 is not compatible with Ruby 1.9.2)

This updates the SWIG bindings only. This code tree does not build:

- Build fails for me when using RVM Ruby 1.9.2 because 'ruby.h' and
  'config.h' headers cannot be found. I am currenty working around
  this by manually placing absolute paths in the build script.

- test/unit/ruby/source_file_test.rb is currently failing because the
  round trip from Ruby -> C -> Ruby causes the string encoding
  metadata to be lost. UTF-8 input strings are output with identical
  content bits, but are marked as ASCII-8BIT.
OTWO-1213 Works around lost encoding in Ruby/C binding layer

When a Ruby 1.9.2 string is passed to the C code, the associated
encoding metadata is lost. When this same string is then returned from C
back to Ruby, an arbitrary, mismatched encoding is applied to replace
the lost one.

This means that a string becomes garbled in the round trip. The bits
don't change, but the encoding is lost.

The correct fix would be to preserve the encoding metadata in the C
layer.

The easier fix is to replace the lost encoding with a more likely match,
which is what I've done in this patch. When the C code returns a string,
we apply the Ruby runtime's current default encoding, which is highly likely to
be the encoding originally discarded.
Update build script to include appropriate ruby header file

* With ruby 1.9.x the location of ruby.h and config.h have changed
* This patch tries to load include the appropriate file paths while
compiling the c code based on the installed ruby version
* Tested on Ubuntu 12.04 with ruby 1.8.7 and 1.9.3
* Remove reference to the deprecated `Config` module
ruby 1.8.7 BC patch - Force encoding only for ruby 1.9
Fix deprecations and errors for SWIG 2.0.11

Extending a `struct` with its `typedef` name is deprecated as of SWIG 2.0.5.
We should use the struct name directly, even for constructors and destructors

Its not applicable for anonymous structs (of-course)
Update README for ruby 1.9.3 upgrade

*** Breaks BACKWARD COMPATIBILITY ***
as ruby 1.9.3 requires SWIG 2.0 and the latter is not
backward compatible with its older versions
Remove 1.8.7 backward compatibility patches

We are OK with ending the support with 1.8.7.
Fix Rust numbers and update keywords.
Update Rust example code for Rust 0.8.
OTWO-2506 Update lang detector to prefer extension over emacs mode line

File extensions seems more reliable than emac line,
as a javascript file can have a java emac mode.
Disambiguate RenderScript .rs files from Rust.

RenderScript isn't implemented, so if a file matches the RenderScript
detection it is just left as undetected.
Adds a Javascript test file with Java Emacs mode
Merge pull request #30 from chris-morgan/rust

Add support for Rust
Removes whitespace from expected output file
Merge pull request #27 from nnsathish/master

Upgrade Ohcount to support ruby 1.9.x
Update Ohcount to work with Ubuntu 14

The most significant change is that the perl script
that generates HTML, especially with the "<!DOCTYPE html" heading,
is now identified as HTML.  This is due to differences in the
libmagic database between CentOS 5 and Ubuntu 14.

It may be possible to generate a different database, or modify the
existing database to change the identification order.  However,
it is also worth acknowledging that, in the years since this code
was first developed, it may be more correct to recognize a script
that generates a complete HTML document as 'HTML', even if that
script is written in something like perl.
Update README for compatibility with Ubuntu 14.04
Merge pull request #41 from blackducksw/ubuntu_14

Update Ohcount to work with Ubuntu 14
Merge pull request #2 from blackducksw/master

merged latest from upstream