Lint using jshint and run linter on Travis

Implement code linting with jshint. Used .jshintrc from [gcloud-node](https://github.com/GoogleCloudPlatform/gcloud-node/blob/master/.jshintrc). I added some globals to make it play nicely with Mocha.

There are currently 152 linting errors - see below. I think it would be better to fix them in a separate PR. Closes #279.

```
lib/apirequest.js: line 26, col 61, Expected '===' and instead saw '=='.
lib/apirequest.js: line 27, col 35, Expected '===' and instead saw '=='.
lib/apirequest.js: line 76, col 16, 'callback' is already defined.
lib/apirequest.js: line 85, col 88, Line is too long.
lib/apirequest.js: line 86, col 95, Line is too long.
lib/apirequest.js: line 126, col 88, Line is too long.
lib/apirequest.js: line 143, col 87, Line is too long.
lib/apirequest.js: line 147, col 81, Line is too long.
lib/apirequest.js: line 157, col 13, Expected '{' and instead saw 'body'.

lib/auth/computeclient.js: line 27, col 84, Line is too long.
lib/auth/computeclient.js: line 56, col 45, Expected an assignment or function call and instead saw an expression.
lib/auth/computeclient.js: line 75, col 81, Line is too long.
lib/auth/computeclient.js: line 78, col 45, Expected an assignment or function call and instead saw an expression.

lib/auth/jwtclient.js: line 64, col 45, Expected an assignment or function call and instead saw an expression.
lib/auth/jwtclient.js: line 71, col 49, Expected an assignment or function call and instead saw an expression.
lib/auth/jwtclient.js: line 90, col 6, Expected an assignment or function call and instead saw an expression.

lib/auth/oauth2client.js: line 140, col 81, Line is too long.
lib/auth/oauth2client.js: line 143, col 45, Expected an assignment or function call and instead saw an expression.
lib/auth/oauth2client.js: line 170, col 81, Line is too long.
lib/auth/oauth2client.js: line 173, col 45, Expected an assignment or function call and instead saw an expression.
lib/auth/oauth2client.js: line 243, col 81, Line is too long.
lib/auth/oauth2client.js: line 279, col 90, Line is too long.
lib/auth/oauth2client.js: line 279, col 15, ['Authorization'] is better written in dot notation.
lib/auth/oauth2client.js: line 344, col 84, Line is too long.
lib/auth/oauth2client.js: line 275, col 7, 'that' is defined but never used.
lib/auth/oauth2client.js: line 322, col 7, 'req' is defined but never used.

lib/generator.js: line 50, col 83, Line is too long.
lib/generator.js: line 164, col 95, Line is too long.
lib/generator.js: line 173, col 8, Don't make functions within a loop.
lib/generator.js: line 192, col 95, Line is too long.
lib/generator.js: line 224, col 97, Line is too long.

lib/transporters.js: line 81, col 48, Expected an assignment or function call and instead saw an expression.

test/test.apikey.js: line 51, col 85, Line is too long.
test/test.apikey.js: line 61, col 81, Line is too long.

test/test.clients.js: line 25, col 102, Line is too long.
test/test.clients.js: line 54, col 42, Expected '{' and instead saw 'files_'.
test/test.clients.js: line 57, col 41, Expected '{' and instead saw 'continue'.
test/test.clients.js: line 72, col 13, 'obj' is defined but never used.

test/test.drive.v2.js: line 118, col 22, Extending prototype of native object: 'Array'.
test/test.drive.v2.js: line 119, col 11, 'scope' is defined but never used.
test/test.drive.v2.js: line 123, col 11, 'req' is defined but never used.
test/test.drive.v2.js: line 123, col 64, 'body' is defined but never used.

test/test.jwt.js: line 63, col 31, 'callback' is defined but never used.

test/test.media.js: line 36, col 88, Line is too long.
test/test.media.js: line 40, col 97, Line is too long.
test/test.media.js: line 47, col 85, Line is too long.
test/test.media.js: line 51, col 83, Line is too long.
test/test.media.js: line 58, col 98, Line is too long.
test/test.media.js: line 67, col 102, Line is too long.
test/test.media.js: line 74, col 106, Line is too long.
test/test.media.js: line 82, col 105, Line is too long.
test/test.media.js: line 83, col 92, Line is too long.
test/test.media.js: line 85, col 106, Line is too long.
test/test.media.js: line 86, col 81, Line is too long.
test/test.media.js: line 102, col 90, Line is too long.
test/test.media.js: line 111, col 81, Line is too long.
test/test.media.js: line 119, col 105, Line is too long.
test/test.media.js: line 120, col 92, Line is too long.
test/test.media.js: line 122, col 106, Line is too long.
test/test.media.js: line 123, col 81, Line is too long.
test/test.media.js: line 145, col 92, Line is too long.
test/test.media.js: line 146, col 138, Line is too long.
test/test.media.js: line 153, col 85, Line is too long.
test/test.media.js: line 176, col 82, Line is too long.
test/test.media.js: line 184, col 92, Line is too long.
test/test.media.js: line 186, col 98, Line is too long.
test/test.media.js: line 188, col 105, Line is too long.
test/test.media.js: line 208, col 91, Line is too long.
test/test.media.js: line 216, col 92, Line is too long.
test/test.media.js: line 23, col 20, 'authClient' is defined but never used.
test/test.media.js: line 23, col 32, 'OAuth2' is defined but never used.
test/test.media.js: line 40, col 9, 'req' is defined but never used.
test/test.media.js: line 51, col 9, 'req' is defined but never used.
test/test.media.js: line 139, col 9, 'scope' is defined but never used.
test/test.media.js: line 163, col 9, 'req' is defined but never used.
test/test.media.js: line 219, col 9, 'req' is defined but never used.
test/test.media.js: line 211, col 35, 'reqBody' is defined but never used.
test/test.media.js: line 211, col 30, 'uri' is defined but never used.

test/test.oauth2.js: line 93, col 100, Line is too long.
test/test.oauth2.js: line 94, col 90, Line is too long.
test/test.oauth2.js: line 96, col 98, Line is too long.
test/test.oauth2.js: line 103, col 81, Line is too long.
test/test.oauth2.js: line 104, col 90, Line is too long.
test/test.oauth2.js: line 114, col 90, Line is too long.
test/test.oauth2.js: line 117, col 98, Line is too long.
test/test.oauth2.js: line 498, col 86, Line is too long.
test/test.oauth2.js: line 545, col 94, Line is too long.
test/test.oauth2.js: line 728, col 81, Line is too long.
test/test.oauth2.js: line 729, col 135, Line is too long.
test/test.oauth2.js: line 730, col 90, Line is too long.
test/test.oauth2.js: line 734, col 28, ['a15eea964ab9cce480e5ef4f47cb17b9fa7d0b21'] is better written in dot notation.
test/test.oauth2.js: line 741, col 108, Line is too long.
test/test.oauth2.js: line 744, col 82, Line is too long.
test/test.oauth2.js: line 750, col 90, Line is too long.
test/test.oauth2.js: line 765, col 90, Line is too long.
test/test.oauth2.js: line 773, col 90, Line is too long.
test/test.oauth2.js: line 781, col 90, Line is too long.
test/test.oauth2.js: line 782, col 81, Line is too long.
test/test.oauth2.js: line 789, col 90, Line is too long.
test/test.oauth2.js: line 790, col 83, Line is too long.
test/test.oauth2.js: line 797, col 90, Line is too long.
test/test.oauth2.js: line 806, col 90, Line is too long.
test/test.oauth2.js: line 818, col 90, Line is too long.
test/test.oauth2.js: line 823, col 84, Line is too long.
test/test.oauth2.js: line 841, col 90, Line is too long.
test/test.oauth2.js: line 846, col 112, Line is too long.
test/test.oauth2.js: line 863, col 81, Line is too long.
test/test.oauth2.js: line 867, col 90, Line is too long.
test/test.oauth2.js: line 890, col 92, Line is too long.
test/test.oauth2.js: line 902, col 97, Line is too long.
test/test.oauth2.js: line 903, col 92, Line is too long.
test/test.oauth2.js: line 920, col 85, Line is too long.
test/test.oauth2.js: line 921, col 92, Line is too long.
test/test.oauth2.js: line 40, col 7, 'PUBLIC_KEY' is defined but never used.
test/test.oauth2.js: line 41, col 7, 'PRIVATE_KEY' is defined but never used.
test/test.oauth2.js: line 121, col 65, 'result' is defined but never used.
test/test.oauth2.js: line 209, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 226, col 9, 'expiry' is defined but never used.
test/test.oauth2.js: line 258, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 306, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 354, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 395, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 412, col 9, 'expiry' is defined but never used.
test/test.oauth2.js: line 442, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 489, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 536, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 582, col 9, 'login' is defined but never used.
test/test.oauth2.js: line 628, col 13, 'login' is defined but never used.
test/test.oauth2.js: line 628, col 13, Too many errors. (67% scanned).

test/test.options.js: line 40, col 86, Line is too long.
test/test.options.js: line 71, col 100, Line is too long.
test/test.options.js: line 78, col 82, Line is too long.
test/test.options.js: line 81, col 100, Line is too long.
test/test.options.js: line 85, col 29, ['Authorization'] is better written in dot notation.

test/test.path.js: line 39, col 81, Line is too long.
test/test.path.js: line 46, col 88, Line is too long.
test/test.path.js: line 53, col 83, Line is too long.
test/test.path.js: line 58, col 99, Line is too long.
test/test.path.js: line 21, col 20, 'authClient' is defined but never used.
test/test.path.js: line 21, col 32, 'OAuth2' is defined but never used.
test/test.path.js: line 40, col 9, 'req' is defined but never used.
test/test.path.js: line 40, col 49, 'resp' is defined but never used.
test/test.path.js: line 47, col 9, 'req' is defined but never used.

test/test.transporters.js: line 27, col 59, Bad or unnecessary escaping.
test/test.transporters.js: line 27, col 65, Bad or unnecessary escaping.
test/test.transporters.js: line 36, col 87, Line is too long.
test/test.transporters.js: line 20, col 5, 'googleapis' is defined but never used.

test/test.urlshortener.v1.js: line 35, col 113, Line is too long.
test/test.urlshortener.v1.js: line 44, col 92, Line is too long.
test/test.urlshortener.v1.js: line 48, col 83, Line is too long.

scripts/generate.js: line 31, col 37, 'success' is defined but never used.
scripts/generate.js: line 35, col 37, 'filename' is defined but never used.
```