Bugfix: non-inbound keys didnt work

All samples and unit tests so far in Dexie has been done using inbound
primary key ('++id' for example). When testing to omit the name of the
primary key (as I have documented in wiki) I detected bugs in the code
related to this. This checkin should solve those bugs.
Minor change of how setByKeyPath() handles undefined
Bug in mapToClass(): calling prototype methods of class

Calling Table.mapToClass(class) without specifying a structure, would
try to execute all functions on the class' prototype (typically methods
on your class).

Also: More explaining message when trying to use non-transactional
operations within a transaction.
console.log in qunit
Unit tests for below,above and between methods
Dexie.Syncable passes all tests now