Added pre_data module with tests.

The entity engine test was broken and would not compile due to expecting
fields in a record that were not there.
Added search wrapper.
Added behavior callback specification.
Better cleanup.
Added documentation on record and data backend.
pre_data now handles exploding worker pids.
Enforce transactions on many api things.

The real reason to do this is to force transaction required functions
to all run within the same pid. Some backends (mnesia) require transations
not cross pid bounderies (it uses the process dictionary to track
transactions). This change does the same to keep track of the callback
module. This has the advantage of requiring fewer trips to the pre_data
process, so pragmatism beats the 'pdict is dirty' purity.
Added comment and fixed some whitespace.
Mnesia backed with everything but search.
Removed 'member' search param

yagni.
Mnesia backend implemented.

It will need some more work; specifcally the check_setup/0 will need to
be extended to build/check for the required tables, or even possibly the
nodes in the cluster. For now, it's enough to prove it doth work.
Removed export all from log file.

If you absolutely need to export all, you should put it in the specific
module. Putting it in the log file hid a bug from the unit tests until
code review, thus defeating the entire purpose of the test.
Exported needed functions.
Removed commented out code.
Added comments/fencing.
Added behaovir declaration to pre_mnesia.

It is a pre_data implementation, I swear!
Merge pull request #5 from SkewedAspect/feature-mw-data-abstraction

Merged Data Abstraction. Fixes #1.