Clee/proto

@ormsbee Basic template. Need more information on types of input/output. Database could use more work after getting more information. 
Names like `ValNotFoundError` will probably be confusing to callers. It's fine for really generic errors, but if we're making a "Not Found" type of error, it should probably be `VideoNotFoundError`. Likewise, if we have a "Not Available" error, we should say what wasn't available (the video? the specific encoding? etc.)