Default properties

Some changes and clarifications to default property behaviour:

- Added `event_uuid`, which is set to `SecureRandom.uuid`. This can be overridden by the event call.
- Changed `timestamp` so it can be overridden by the event call.
- Made it explicit that `scope` and `event` cannot be overridden.

I also refactored the tests a bit to make them easier to maintain, by not doing string comparisons anymore, but by parsing the JSON string instead.

@airolson @fw42 for review