datastore: mark failed rollbacks as finalized

If an error occurs upstream while trying to rollback a
transaction, we can mark the transaction as `finalized`
regardless. By marking it `finalized`, we don't then
later make an accidental commit when `done` is
executed.

Fixes #237
docs(readme): add examples section and todomvc
Merge pull request #244 from ryanseys/examples-todo

docs(readme): add examples section and todomvc
Merge pull request #240 from stephenplusplus/spp--finalize-rollbacks

datastore: mark failed rollbacks as finalized
feat(datastore): support setting a property indexed value

By default, property index values are set to `true`, without allowing
the user to specify an override. Now, when a user passes in an array
to `dataset.save`, they will have the option of setting `true` or
`false`.

Example:

dataset.save({
  key: dataset.key('Company'),
  data: [
    {
      name: 'propertyName',
      value: 'any value type',
      excludeFromIndexes: false
    }
  ]
}, function(err, keys) {}).

Resolves: #208
Related: http://goo.gl/tKVvhP
Refactor Transaction and Dataset