Adding EnsurePropertyIndex component factory

This pull request adds a component which allows for a configuration-based approach for creating Oak indexes. Indexes are created/updated if necessary. An update sets the reindex flag.

This is only dealing with property indexes. I would plan to add ordered index support separately. Since each index type has its own configuration properties, IMHO it makes sense to keep these as separate configs vs. trying to do all index types with a single component factory.

![image](https://cloud.githubusercontent.com/assets/65906/4143849/ec15dbb8-33d2-11e4-879c-d48dec624aac.png)

Generally I worry about re-indexing using synchronous indexes on large repos; it tends to have very bad effect. Of late ive been switching then over to async before all reindex'ing to ensure the taks is completed by a low(er) priority bg thread. 

Flipping this to async for re-index and flipping it back automatically may be overly complex for the scope of this impl; but IMO worth noting that sync reindex can have serious effects (blocking writes).