Update build script

* Update protobuf to v3
* Add --gyp-defines flag
* Extract a method
Update .travis.yml

* Build with clang in addition to gcc
* Use newer Qt5 from trusty repo
* Add a few dependencies to ensure protobuf build success