core: support rados_stat

Added stat support for lua-rados. Also updated test.lua
to reflect the new functionality.

Signed-off-by: Adam Manzanares <nmtadam@gmail.com>
Reviewed-by: Noah Watkins <noahwatkins@gmail.com>
core: fix whitespace

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
core: fix LDoc markup tag

@return rather than @returns

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
core: compile as C++

Multi-step patch that will move code over to use the C++ RADOS API. This
is needed so we can access bufferlists, and avoid some weird parts of
the C API. For example, rados_exec takes a fixed size output buffer,
but it is difficult to predict the output size.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
travis: add notification settings

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
core: convert code to use Rados C++ API

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
style: switch to 2 space indent for C++

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
trivial: clean-ups

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
core: prevent Rados GC when IoCtx ref exists

Adds a weak-key table that keeps IoCtx -> Rados references. The GC won't
reclaim Rados instances as long as an IoCtx references it. However, the
GC will collect the IoCtx references and automatically remove the Rados
instances, so we don't have to explicitly remove the IoCtx keys.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>