MDL-40313 questionbank: Add question filtering API
Add new API for filtering questions, refactoring the options to display old questions
and include subcategories into new question_bank_search_condition classes.
Make the new API pluggable via local_[pluginname]_get_question_bank_search_conditions.
MDL-40313 questionbank: Add question filtering API, merge

Add new API for filtering questions, refactoring the options to display
old questions and include subcategories into new
question_bank_search_condition classes. Make the new API pluggable via
local_[pluginname]_get_question_bank_search_conditions.
MDL-40457 Question Bank: Allow plugins to add columns to question bank view

This commit allows plugins to add columns to the question bank view.
For example, a plugin could add a "last modified date" column by declaring
a class as such:
class local_qbmodified_question_bank_column extends question_bank_column_base {

The plugin should return an array of its columns from _question_bank_column_types() ie:

function local_qbmodified_question_bank_column_types($question_bank_view) {
    return array('lastmodified' => new local_qbmodified_question_bank_column($question_bank_view));
}

Columns to be displayed are set as follows:
$CFG->questionbankcolumns = array('checkbox', 'qtype', 'questionname', 'editaction', 'previewaction',
                                  'moveaction', 'deleteaction', 'creatorname', 'modifiername',
                                  'local_searchbytags|tags', 'local_qbmodified|lastmodified'
                                  );