canvas update script
canvas update script

test plan:
* run `script/canvas_update`
* verify that the log output goes in /log
* verify that canvas was updated
* run `script/canvas_update -q` for QUICK_MODE
* verify QUICK_MODE's output is:

Quick mode enabled (assumes you have guard running and don't want to
generate docs)
Bringing Canvas up to date ...
  Log file is /Users/lwilkins/sandbox/canvas-lms/log/canvas_update.log
Updating plugin vendor/plugins/canvasnet_registration ...
Updating plugin vendor/plugins/instructure_misc_plugin ...
Updating plugin vendor/plugins/multiple_root_accounts ...
Pulling Canvas code ...
Checking your gems (bundle check) ...
Gems are up to date, no need to bundle install ...
Migrating DB ...
Installing npm packages ...
Tips:
  - 'bundle exec guard': auto-compiles JS files while developing
  - 'script/delayed_job run': run delayed jobs in the foreground

NOTE 1) if you see
  Gems are up to date, no need to bundle install ...
  then `bundle install` will not be run

NOTE 2) after running this command, you'll be on master branch,
  if you want to continue testing this script, checkout the
  branch you pulled down again.

Change-Id: I99c3097d452128d6fffa31d25e3b7e57a438555e
Reviewed-on: https://gerrit.instructure.com/37423
Tested-by: Jenkins <d95b56ce41a2e1ac4cecdd398defd7414407cc08@instructure.com>
Reviewed-by: Braden Anderson <5d57265d16cfe2e0f2e6eb7f13e876bb378ef0f1@instructure.com>
Product-Review: Landon Wilkins <e219b0c23c4256074cdfc7a23138e4f17200b08f@instructure.com>
QA-Review: Landon Wilkins <e219b0c23c4256074cdfc7a23138e4f17200b08f@instructure.com>

instructure/canvas-lms,greyhwndz/canvas-lms,SwinburneOnline/canvas-lms,antoniuslin/canvas-lms,shidao-fm/canvas-lms,gbleydon/canvas-lms,SwinburneOnline/canvas-lms,whalejasmine/canvas-lms,instructure/canvas-lms,efrj/canvas-lms,djbender/canvas-lms,snehakachroo1/LSI_replica,jay3126/canvas-lms,antoniuslin/canvas-lms,eCNAP/CANVAS,fronteerio/canvas-lms,gbleydon/canvas-lms,kyroskoh/canvas-lms,sdeleon28/canvas-lms,instructure/canvas-lms,roxolan/canvas-lms,matematikk-mooc/canvas-lms,skmezanul/canvas-lms,instructure/canvas-lms,HotChalk/canvas-lms,redconfetti/canvas-lms,SwinburneOnline/canvas-lms,Unow/canvas-lms,whalejasmine/canvas-lms,Rvor/canvas-lms,greyhwndz/canvas-lms,redconfetti/canvas-lms,redconfetti/canvas-lms,utkarshx/canvas-lms,djbender/canvas-lms,skmezanul/canvas-lms,va7map/canvas-lms,grahamb/canvas-lms,matematikk-mooc/canvas-lms,dgynn/canvas-lms,antoniuslin/canvas-lms,jay3126/canvas-lms,utkarshx/canvas-lms,redconfetti/canvas-lms,tgroshon/canvas-lms,shidao-fm/canvas-lms,grahamb/canvas-lms,va7map/canvas-lms,grahamb/canvas-lms,greyhwndz/canvas-lms,efrj/canvas-lms,Rvor/canvas-lms,instructure/canvas-lms,tgroshon/canvas-lms,samuels410/greatlakes-lms,AndranikMarkosyan/lms,Rvor/canvas-lms,samuels410/greatlakes-lms,instructure/canvas-lms,leftplusrightllc/canvas-lms,venturehive/canvas-lms,Jyaasa/canvas-lms,Rvor/canvas-lms,ShreniiNepal/shrenii_lmp,kyroskoh/canvas-lms,samuels410/greatlakes-lms,instructure/canvas-lms,utkarshx/canvas-lms,djbender/canvas-lms,venturehive/canvas-lms,roxolan/canvas-lms,SwinburneOnline/canvas-lms,leftplusrightllc/canvas-lms,shidao-fm/canvas-lms,djbender/canvas-lms,Jyaasa/canvas-lms,dgynn/canvas-lms,matematikk-mooc/canvas-lms,venturehive/canvas-lms,ShreniiNepal/shrenii_lmp,roxolan/canvas-lms,narigone/canvas,leftplusrightllc/canvas-lms,samuels410/greatlakes-lms,HotChalk/canvas-lms,antoniuslin/canvas-lms,utkarshx/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,wrdsb/canvas-lms,va7map/canvas-lms,sfu/canvas-lms,whalejasmine/canvas-lms,leftplusrightllc/canvas-lms,wrdsb/canvas-lms,dgynn/canvas-lms,roxolan/canvas-lms,grahamb/canvas-lms,jay3126/canvas-lms,kyroskoh/canvas-lms,narigone/canvas,eCNAP/CANVAS,Unow/canvas-lms,kyroskoh/canvas-lms,Jyaasa/canvas-lms,grahamb/canvas-lms,efrj/canvas-lms,juoni/canvas-lms,whalejasmine/canvas-lms,HotChalk/canvas-lms,sfu/canvas-lms,wye0220/shindig-canvas,sfu/canvas-lms,HotChalk/canvas-lms,greyhwndz/canvas-lms,skmezanul/canvas-lms,eCNAP/CANVAS,AndranikMarkosyan/lms,tgroshon/canvas-lms,fronteerio/canvas-lms,wrdsb/canvas-lms,AndranikMarkosyan/lms,AndranikMarkosyan/lms,sfu/canvas-lms,juoni/canvas-lms,eCNAP/CANVAS,sdeleon28/canvas-lms,matematikk-mooc/canvas-lms,snehakachroo1/LSI_replica,efrj/canvas-lms,tgroshon/canvas-lms,va7map/canvas-lms,wye0220/shindig-canvas,venturehive/canvas-lms,ShreniiNepal/shrenii_lmp,fronteerio/canvas-lms,ShreniiNepal/shrenii_lmp,gbleydon/canvas-lms,sfu/canvas-lms,narigone/canvas,wye0220/shindig-canvas,Jyaasa/canvas-lms,Unow/canvas-lms,shidao-fm/canvas-lms,juoni/canvas-lms,narigone/canvas,snehakachroo1/LSI_replica,juoni/canvas-lms,fronteerio/canvas-lms,wrdsb/canvas-lms,snehakachroo1/LSI_replica,skmezanul/canvas-lms,sdeleon28/canvas-lms,dgynn/canvas-lms,jay3126/canvas-lms,sdeleon28/canvas-lms