Add in automatic name-space cache flushing
SwatDBDataObjects should implement getCacheNsArray() to return an name-spaces that should be flushed.
fix docblock
better formatting/docs
Updates for Mike's comments:
 - improved documentation
 - add SwatDBFlushable interface for SwatDBDataObject and
   SwatDBRecordsetWrapper
more documentation formatting updates
Merge pull request #18 from nburka/flush-cache

Add in automatic name-space cache flushing
prepare for release of 2.0.14 | package party
prepare for release of 2.0.15 | package party
Add a hasPublicProperty() public method.

This is useful for when you just want to lookup a property on a class you don't know everything about, instead of throwing an exception when trying to access it.
add forceFlushCache()

This ignores any logic added to flush the cache intelligently and instead just flushes all available namespaces. This makes code simpler when we know we want to flush everything at the cost of having to make getCacheNsArray() respect a new $ignore_checks flag in each dataobject.
Cleanup of namespace caching.

Thanks to @gauthierm, this is at least 1% better.

Rename methods:
 * getCacheNsArray() to getCacheNamespaces()
 * getFullCacheNsArray() to getAvailableCacheNamespaces()
 * flushCache() to flushCacheNamespac()
 * forceFlushCache() to flushAvailableCacheNamespaces()

As well update behaviour of getAvailableCacheNamespac() to return a flat array of namespaces to flush, instead of trying to build that logic into getCacheNamespaces().
line-length
add hasDateProperty() to check for registered date properties on the object.
Add documentation.
Merge pull request #19 from isaacgrant/has-public-property

Add methods to check public and date properties.
Documentation cleanup.
Merge pull request #20 from isaacgrant/better-force-flushing

More robust cache flushing methods.
prepare for release of 2.0.16 | package party
Fix hasDateProperty()

To our shame we didn't test this when adding it. The date_properties array is an array of properties, not an indexed array of values. So use the correct in_array().
Make the SwatDetailsViewField's header title come from a method and update the vertical field to use it.

This fixes two issues in the SwatDetailsViewVerticalField header:
 * It now respects the show_colon property.
 * It now shows a &nbsp; when no title is set, just like SwatDetailsViewField