Add cask support
Tweak submodule update procedure