Extra fields issue fixed.

The aforementioned problem where the data source ended up with extra
fields had to do with the way I was calling the initialization routine.

The internet stated that the way you used inherited class methods was
something like ClassName.prototype.methodName.call(args);.  This, didn't
work, as it seems to get called on the prototype, thus causing anything
that changes to affect all instances of that type, not just the one
calling it.

Anyway, I fixed it by changing the call to "this._initialize()" like
anything else, and it works now.
Got the search working.

The search controller can now execute a search.  This is more or less
the core of the application, so I'm calling this a major milestone (and
an excuse to call it a day).

The next order of business is to work on some of the editing
functionality, I think.  The backend needs to be considered as well.
I'm thinking of maybe using an odata compliant web service to expose the
different tables.  Will have to think about it.