1.0.0-rc.4
Add test cases

Still need to add TestSerialization, but other tests added.
Update the way tests run
Throw error if using an unsaved object as a relationship.

See Issue #8
Get rid of custom manager, no longer needed
Add `Object.refresh()` and fix PHP glitch with latest Haxe.

`Object.refresh()` clears the cache of related objects, so when you next call
the getter they will be loaded from database.  In future I may also get it to
update the properties of the current object from the database.

PHP glitch: The Haxe DB Macros (not the ufront DB macros) on platforms
other than neko, look for a field called `Manager`, and if it's not there
it creates a `__getManager()` field. Unfortunately this breaks when
`ufront.db.Object` doesn't have a maanger, but all of it's children do,
because of the build macro.  The `__getManager()` field is used when you
call `new MyModel()`, but in our case it ended up calling specifically
`ufront.db.Object.__getManager()`, which returned `Manager<Object>`, not
`Manager<T>`, and broke the inserting of objects.
Changed `id` to UId, not SUId. Clean up ufront.db.Object, better docs.

The `id` change is to add compatibility with SQLite.
Unless you already have over 2 billion rows in one table it shouldn't be an issue.

Get rid of `checkAuthRead` and `checkAuthWrite` which are not really
used, and hard to implement correctly given ufront's auth system,
dependency injection etc.

We might look at reintroducing later with a more complete implementation.

Removed ReadOnlyList, we're not using it any more.
Workaround for PHP metadata not attaching correctly.

Still not sure why Haxe does this, but if you don't access `Relationship.manager`
explicitly, but instead use `new Manager(relationship)`, then Haxe/PHP does not
attach the metadata to the Relationship model, and causes runtime exceptions.

This workaround fixes it for ManyToMany, which is the only use of this (unusual)
way of creating a Manager in the ufront-orm library.

Fixes #9
Fix for quoting on ManyToMany query

Fixes #7
Fixes #10
Better handling of unsaved objects, code cleanup.

- If aObject is null, throw an error
- If either aObject or bObject don't have an ID, call insert() first
- If aObject doesn't have an ID, give sensible results for all other functions
- Add documentation to most methods
- Cleanup code

Fixes #8