Datum db

This PR is intended to replace #1238 and fix some of the problems introduced by it. Now there is only one internal cursor, this avoid errors like MDB_MAX_READERS and higher memory consumption.

Introduces a new `DatumDBParameter` to be used by the Data_Layers i.e.
```
layers {
  name: "data"
  type: DATA
  top: "data"
  top: "label"
  data_param {
    batch_size: 256
  }
 datum_db_param {
    source: "examples/imagenet/ilsvrc12_train_lmdb"
    backend: LMDB
}
  transform_param {
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
    mirror: true
  }
  include: { phase: TRAIN }
}
```

For lower memory consumption use `LEVELDB` instead of `LMDB`.

All the code related to `dataset` needs to be removed, but before doing that I want to get feedback about this PR.