Entitiy hashes

Another fix for #106.

It turns out very very larger numbers caused by the `hash` method results in `REAL` values being stored in the DB.

From the [SQLite docs](http://www.sqlite.org/lang_expr.html#litvalue):
>If a numeric literal has a decimal point or an exponentiation clause or if its magnitude is less than -9223372036854775808 or greater than 9223372036854775807, then it is a floating point literal. Otherwise is it is an integer literal.

In the below screen shots you can see some of the `__entityType` column values are floating point numbers.
**Jobs**
![jobs](https://cloud.githubusercontent.com/assets/1810588/4378633/d6439cc6-4359-11e4-9e62-0562bdd9440c.png)
**Statuses**
![statuses](https://cloud.githubusercontent.com/assets/1810588/4378652/01fd959c-435a-11e4-88a4-f11b5f243fca.png)

To [fix](https://github.com/rhodgkins/encrypted-core-data/commit/9b3c1f4fe6c99bdee863511f21e03345064d1cc6#diff-0f8212bd08f2be9888d1b6e5e82bdac1R2739) this the number is cast to a `uint32_t` to ensure it is always in the valid bounds.