API to modify application resources

#231 #201 
Use case example:
```c++
unordered_map<wstring, wstring> um = {
    { L"last-id" : L"2014" }
}
DataStore::get().post(L"last-id", um);
```
Note that `Transaction` is also needed to call operations that modify the resources (omitted above). Can be merged with operations for the tasks list.
How it will be stored in the xml:
```xml
<resources>
    <resource id="last-id">
        <last-id>2014</last-id>
    </resource>
</resource>
```
Can be used to store a group of application resources too, if any is needed in the future.

@evansb please take not that during very first load, Query Engine will find `getAllResources()` returning empty vector. QE would need to do a `post` operation first for the missing resources so that DataStore is aware such resources exist (so that subsequent `put` operations to the resources don't fail)