Add existing code from basiclti 2.2.1
Custom modifications for mass grade sync.

The LTI grade outcomes support as envisioned only lets you sync 1 grade
per LTI link and requires users to interactively click that link. We
needed to sync ALL grades automatically, without user interaction.

There is an additional parameter now at the very end of the sourcedid
string which gives the name of the assignment that the outcome request
is for. Note that because of this modification, our grade syncing
mechanism is not compatible with other LTI implementations. Hopefully,
this is just a temporary measure and LTI comes up with a better standard
that supports mass automatic grade syncing.

Note that the BasicLTI building block has a security measure that hashes
the sourcedid string and checks it for consistency. This turns out to be
sometimes inconsistent as some courses will adopt a hash while others
don't. The building block is supposed to generate a uuid for each course
it is in (when you create a link for the building block), I'm not sure
why this sometimes happens and sometimes doesn't.

I had to disable the hash checking for sourcedid since it didn't like
the tampering I had to do with the sourcedid. Note that this would also
help with our Webwork enrolment sync fails after term starts because the
course somehow gained an UUID.

Example sourcedids, note the ":a1" at the end indicating that this is
for a homework set named "a1". The gradecenter column will end up
reading <LTI link name>_<homework set name>, e.g.: webwork_a1

With Hash:
xRhmVmhZkfMYHOGbJcBMEdfuELCXVhbCA/wfDOe3q78=:_365_1::webwor:101:a1

Without hash:
:_61_1::webworkdev:0010:a1
Update b2context, add merge upstream procedures.

Update b2context to 1.3.00.

Wrote down the process necessary to merge with code updates from
upstream. The chief difficulty lies in the fact that no repo is
available to pull updates and the updates are released only in zip
files.
Treat mass gradesync from Webwork specially.

It's a mass gradesync request from Webwork if the sourcedid was modified
to have 1 extra element, which means 5 in our case.

Mass gradesync has their grade columns named differently.

This commit is mainly for restoring the regular LTI Outcomes service.
Turns out that breaking the regular LTI Outcomes service can result in
some weird behaviour such as creating tons of grade center columns for
each sync.
Split off into a separate building block.

To prevent potential bugs that might result from my modifications, I've
renamed all references to the Basic LTI building block to the Webwork
LTI building block. This should make Blackboard treat this building
block as entirely separate from the original BasicLTI building block.
Rename from WebworkLTI to just Webwork.