WIP of CSV mapper for draft schedule importation.
Moves CSV Importer to autoloader compatible class, start of updates to importer class.
Refs #281: WIP draft event cdv importer interface and updates to CsvImporter class.
Merge branch 'develop' of github.com:EntradaProject/entrada-1x into feature-csv-col-mapper
Adds draft model and supporting models, updates interfaces to use new models.
Refs #281: Minor update to CSV import to use model rather than query, and adds supporting method to model.
Refs #281: Addresses original reason for ticket: when the event's audience type is a course group, and that course group has a tutor attached, the import script adds that tutor to the event, so the tutor can be credited.
Refs #281: Fixes bug where draft option changes were not being saved.
Ref #281 Updated the event export to csv functionality to stop fields from being duplicated when they aren't default fields, added in the recurring event id as a default export field (so that those associations will be pulled out, to allow for mass editing), added in the recurring id handling to the csv importer in the draft events, and updated the draft schedule import cron job to set the new recurring_id properly based on the resulting events created.
Merge branch 'develop' into feature-csv-col-mapper

* develop: (43 commits)
  Made descriptor text a label that refers to the radio button for the descriptor, so that the descriptor text can be clicked to select the descriptor for a question, rather than just having to click on the radio button itself. Additionally added some additional styling to the dialog to make it a bit nicer/clearer to use; though it still likely needs some work or at least thought towards how it should operate.
  Added missing "Descriptor" column heading for the question add/edit interface in the evaluations module.
  Fixed an issue in the evaluations module which was causing the vertical matrix and the drop down question types to miss some required processing, and in particular- not fetch the associated objectives on the edit page.
  Additional change to the evalutions module to maintain revision/parent-child relationships when the number of responses changes. Reporting can now be done (in the future) using the response descriptors when parent-child relationships exist for questions with a different number of responses.
  Updates for the evaluation module to allow assistants to pull evaluations for the people they are assigned to, and fix to the evaluation review page to fix an issue with viewing specific records for precepters logged as "other teacher", rather than specific preceptors already in our system.
  Added in the `evaluations_related_questions` relationship to the list of different revisions for a question, and stopped the change of the question_parent_id to the current question id when not creating a new question on the edit page.
  Removed exit that was breaking the add assignment interface.
  Refs #329: Adds Entrada_Base class and adapts Entrada_Settings to extend Entrada_Base.
  Refs #282: Minor unrelated bug fix to hide advanced options link when no students have submitted.
  $ENTRADA_USER->getID() returns a string, which was being identically compared to a sanitized int, which failed; the user was able to add themselves as a contact twice.
  Refs #280: Creates assessment object and puts it in place where simple get queries are used. Couple minor bug fixes
  Fixes bug where weighted incomplete / complete assessments would display 0 out of X% when the student went to view their assessments in a course.
  fixed bug whereby event_topics weren't being copied forward when the draft importer was used. Refs #424
  Moved most recent database upgrade script to go directly after the current version rather than skipping past two other upgrade versions to maintain consistency regarding version numbers and when things were merged into develop.
  Minor update to 1606 which had the wrong db version defined.
  Minor variable name changes, and a change to the user_access SQL query.
  Ref #127 This was already actually fixed compared to what is mentioned in the ticket, but I changed things so it shows the "clear custom text" option if an objective is changed at all, and removes it if clicked (or if the text is cleared otherwise) rather than requiring a new pageload for it to be added or removed from the interface.
  Ref #329 Added the assessment order as the secondary ordering parameter in the query for the assessments list on course websites.
  Ref #329 Created a dynamic threshold setting for how many cohorts' assessments should show up on the "Assessment Strategies". Defaults to showing all of them if the setting isn't in the database, but I set the default to 4 as designated in the ticket. Also made some pretty minor changes to how the Entrada_Settings class is used to make things a bit more smooth to use.
  Issue #316 - allow octal and hexidecimal encoded entities to converted to UTF-8
  ...
Fixed an issue with JSON parse not working sometimes. Instead the data is now passed directly as a JSON object into the variable created.
Ref #281 Fixed a few issues with the events draft csv importer. Cohorts wouldn't import from CSV files due to the string being used missing the 's' on the end of "cohorts", and the UPDATE sql syntax was incorrect, so updating existing draft events didn't do anything. Both of those issues are now resolved, and the recurring id is now populated in the `draft_events` table if it exists in the csv, or is associated with the "original event" id provided.
Merge branch 'develop' into feature-csv-col-mapper

* develop:
  Fixes a bug with mismatched parentheses in function courses_fetch_courses.
  Changes X-Frame-Options header from DENY to SAMEORIGIN.
Minor update to use bootstrap modal vs. jqueryui modal, removes example CSV and provides explanation of column mapper step instead.
Merge pull request #432 from EntradaProject/feature-csv-col-mapper

Feature csv col mapper