More DDD theory put in practice along some good old OO practices.

"lecturer-model" exports a LecturerDomain. LecturerDomain encapsulates the "repository object" (a.k .a. DAO) responsible for communicating to the real database (whatever it could be).

LecturerDomain uses "getters" and "setters" using "defineProperty".

Repository can now be completely mocked within test spec.  (may use spies next time).