Improve caffe tool

Follow up on #789 to make the `caffe` tool more complete and friendly.

- [x] produce normal output by default
- [x] groom args: shorten, add description, and merge gpu + device_id
- [x] add checks
- [x] add usage message
- [x] incorporate `test`

Any other suggestions before release to master?