Added layer that takes as input a manifest containing a list of protobufs.  Each protobuf specifies (1) a URL to a jpeg image, (2) a crop region for that image, (3) an extension with additional fields containing labels, regression target values, etc.  The layer then prefetches a minibatch of jpeg images using cURLpp, decompresses them using libturbojpeg, crop them, resizes them using OpenCV, builds the data blob, and then uses protobuf reflection to fill in the labels.  This is a multilabel layer meaning it can produce as many target values as specified in the network protobuf.
Factored out download manager into util.  Added test for protobuf data layer.
Removed debug statement.
Can't use the timer here since it syncs the gpu and this runs in a separate thread.
Switched some logging over to debug mode.  Added some prefetching timing.
Factored out download manager into util.  Added test for protobuf data layer.
Rebased and fixed build.
Updated template func instantiation.