refactored pdf viewer

- returned the pdf to its original size so that the text would not be blurry
- set the background to a darker colour to differentiate between the app background
from the pdfviewer background
- also added a download button
added HTTP 413 error handling to attachment uploader
implemented error messages for attachment uploader

Before, if a file does not meet the requirements like not being
a pdf file, "nothing" happens. Now an error message appears letting
the user know about the error.

I've also added a new filter to only allow users to upload files that
are 25MB or smaller.
implemented typeahead for enrol user page

- basically instead of having a simple drop down to list all of the
users (currently only instructors) we have a text field to search
for the user - similar to Google
- this makes the interface more user friendly when we have a lot of
users in the system.
- TODO: make only users in the list to be valid inputs using
parameter - typeahead-editable="false"
        - Currently there is a bug (https://github.com/angular-ui/bootstrap/issues/2665)
- Currently:
	- if an enroled user is selected - a success message is immediately
	returned
	- if an invalid input is given - an error message is provided
- A user model test has also been refactored to reflect the change to
the api
fixed inability to upload the same file twice.

https://github.com/nervgh/angular-file-upload/wiki/FAQ#4-no-file-chosen-or-re-add-same-file
fixed ckeditor error after criterion creation on course configure

page
implemented adding criteria on the course creation page

- changed the mechanism to filter out the already added criteria
to use a simple for loop instead of the javascript filter. The reason
is the filter function is not available in IE 8 and below.
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

- created two new api functions
	- for attaching criteria to a course
	- for retrieving the default criteria
		- currently it returns the first criterion in the
		database, but in the future we can make it more elaborate

- removed the Edit link from the list of criteria attached to the course
on the course creation page, because it can cause problems with persisting
the state of the other form fields

- fixed the delete confirmation direction to display changes to variables
in the scope
added new criteria api tests