Added weighting system

Also removed is_int() call in _render_contents() so you can use
string keys to identify sub-items.
Automated the unsetting of the callback once it has been called
Don't pass array(NULL) to callbacks when $opts not specified
Let render() distinguish between an array and a render array