Consolidate utility views into a single view

Combine ps_to_bb_course_code and half_vs_full_courses views into a
single view, keyed to the PeopleSoft course code.
Add placeholders for consolidate D2L & Ares views

Declare three new views that will consolidate the various views in use
for Desire2Learn and Ares data exports. The new views will reduce
duplication and overhead.
Consolidate course code processing functions

Combine ps_to_bb_course_code, ps_to_bb_course_components,
ps_to_ares_semester, and subject_and_number_from_ps_code into a single
function that returns all the information named process_ps_course_code.
Add nodeunit to dependencies

nodeunit will be used to write and run unit tests.
Fix bb_course_code in process_ps_course_code

The variable with the bb_code value is called bb_course_code.
Remove packages from source control. Packages should be installed by kanso.
Ignore packages installed by kanso
Create unit tests for lmsutils
Add unit tests for full year and section types
Add function to deduce system from course code

Course codes from Destiny One and PeopleSoft have a consistent pattern.
Add a function that deduces the originating system based on course code.
Add Destiny One support to course code parsing

Rename process_ps_course_code to course_code_parse, and add support for
Destiny One course codes.
Rename course/bb_code to system/canonical code

Rename course_code and bb_code to system_course_code and
canonical_course_code, to better describe their purposes rather than
rely on historical inferences.
Add semester to course_code_parse data return

Return the semester code (in addition to semester name) in
course_code_parse.
Consolidate course views

Combine the various views that process courses (with minor differences)
into one view. d2l_template, d2l_offering, and ares_course are combined
into processed_courses. Further refinements are required.
Consolidate member views

Replace the d2l_enrollment view with processed_memberships. The new
view is aligned with processed_courses, and has a reduce function that
can combine members in the same course.
Consolidate people views

Replace the d2l_user view with processed_people. The new view is
shorter by avoiding date-time conversions in the reduce function.
Extend processed_memberships to cover role names

Eliminate the ares_courseuser view by extending processed_memberships
to emit an Ares role name.
Don't emit description in processed_courses view

The description is not changed by the view, and therefore redundant.
Use include_docs in a view to access description.
Change xml4_document to render using full row

Instead of pulling out doc or value from the view row, use the entire
row to render xml fragments. This allows templates to work with both a
view row’s document and value at the same time. And, it’s easier to
understand because a template row now lines up exactly with a view row.
Update templates for template, offering, section

Update the XML4 templates for D2L templates, offerings, and sections to
match the change to the processed_courses view and the template context.