Add existing code from basiclti 2.2.1
Update to 2.3.0
Add library imports.

The OAuth library was compiled by me, code from
http://code.google.com/p/oauth/ rev 1270, java core.

b2context obtained from http://www.spvsoftwareproducts.com/bb/b2context/
version 1.2.00

Rest of the jars were provided by the Eclipse Building Block plugin.
Inherit same license as parent project.
Compilation fixes for OAuth.

Since the OAuth library I compiled seems to be a different version than
what the exisiting code was designed with, had to update validateMessage
invocation to work with this version.

Also stopped using BbList, as it is deprecated and the built in
java.util.List works fine.
Fix net-oauth.jar location.

Looks like net-oauth.jar needs to be in WEB-INF/lib probably cause some
JSP file depends on it? Otherwise, it complains that it can't find
OAuthValidator when I try any of the services.
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.