update time and timestamp for relocation of pack directives
add equality to undefined and return new on decode
add additional shared examples and wrap in BSON module
refactor existing tests and add new deserialization tests