optimize Kernel.validate_options for the common "no error" case

Kernel.validate_options is used very extensively, and as such its
performance is actually very important. I already had a few cases
where the call to validate_options was a non-negligible performance
hit.

This commit optimizes the underlying filter_options method for the
common case, without changing the method semantics. Some more
optimizations could be performed if we drop some of the methods
"magic features", but that would be for another commit (after
a proper deprecation period).

The new benchmark file checks the validate_options performance in
different situations, as well as against ruby 2.0+ keyword arguments

The result before the change is (for 100_000 method calls, i.e. numbers
are *10 microseconds/call)

       user     system      total        real
with empty options  1.840000   0.000000   1.840000 (  1.842431)
with empty options and new-style hash  1.810000   0.000000   1.810000 (  1.820675)
with empty options and keyword arguments  0.430000   0.000000   0.430000 (  0.433547)
with all options set  2.280000   0.000000   2.280000 (  2.276723)
with all options set and new-style hash  2.280000   0.000000   2.280000 (  2.284068)
with all options set and keyword arguments  0.420000   0.000000   0.420000 (  0.421685)

With the optimizations, we get instead

       user     system      total        real
with empty options  0.850000   0.000000   0.850000 (  0.867771)
with empty options and new-style hash  0.830000   0.000000   0.830000 (  0.835507)
with empty options and keyword arguments  0.430000   0.000000   0.430000 (  0.433907)
with all options set  0.860000   0.000000   0.860000 (  0.867791)
with all options set and new-style hash  0.900000   0.000000   0.900000 (  0.904429)
with all options set and keyword arguments  0.420000   0.000000   0.420000 (  0.422405)

The new implementation is 0(1) in the size of the options hash
and O(N) in the size of the expected arguments. It also avoids
the creation of additional string objects if the provided hash(es)
have symbol keys (the very common case)
remove test that is meant to be in TC_Module

... and was already there.
Merge pull request #9 from orocos-toolchain/optimize_validate_options

Optimize validate options
fix loading utilrb/module/is_singleton separately on ruby 1.9 and 2.0 (fixes #7)

On these versions, we need to require the extension which defines
singleton_class?
Updated manifest.xml and package.xml for autoproj/rosdep compatibility
Added missing os dependency facets and added run_depend hoe to package.xml
Merge pull request #11 from meyerj/manifest-cleanup

Updated manifest.xml and package.xml for autoproj/rosdep compatibility
Merge remote-tracking branch 'origin/master' into toolchain-2.8

Conflicts:
	package.xml