Data collection isEmpty (ready)

* isEmpty now takes an optional selection string. Now you can call `isEmpty()`, `isEmpty('*')`, `isEmpty('tagname')` etc

* Bug fix for collection.addTags (it should always returns an array)

* Bug fix in collection.select (using hasTag in implementation)