created new track_search binding to allow searching for tracks (really r...

...ecordings). Modified existing model classes to call super() to handle search (open/closed principle, attempting to reduce duplicate code). Fixed xml namespace issue in specs.

NOT ALL TESTS ARE PASSING on travis-ci (feature branch: https://travis-ci.org/tomwolfe/musicbrainz/jobs/6908302), but neither is master anymore (I know it passed 3 months ago, basically vanilla clone in master showing lots of red: https://travis-ci.org/tomwolfe/musicbrainz/jobs/6909051).

I'm not sure exactly what's wrong yet (I'm guessing some updated gem dependency broke something, but I don't know), but figured I should share my changes back upstream regardless. Apologies in advance.

ALL TESTS DO PASS locally on my machine:
$ git checkout track_search
Switched to branch 'track_search'
$ bundle install
Resolving dependencies...
Using awesome_print (1.1.0) 
Using diff-lcs (1.2.2) 
Using multipart-post (1.2.0) 
Using faraday (0.8.7) 
Using nokogiri (1.5.9) 
Using musicbrainz (0.7.4) from source at . 
Using rspec-core (2.13.1) 
Using rspec-expectations (2.13.0) 
Using rspec-mocks (2.13.1) 
Using rspec (2.13.0) 
Using bundler (1.3.0) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
$ bundle exec rspec
................................WARNING: let declaration `tmp_cache_path` accessed in a `before(:all)` hook at:
  /home/thomas/Documents/rails_projects/musicbrainztmp/musicbrainz/spec/client_modules/cache_spec.rb:15:in `block (2 levels) in <top (required)>'

This is deprecated behavior that will not be supported in RSpec 3.

`let` and `subject` declarations are not intended to be called
in a `before(:all)` hook, as they exist to define state that
is reset between each example, while `before(:all)` exists to
define state that is shared across examples in an example group.

......

Finished in 0.65732 seconds
38 examples, 0 failures