persy 0.6.0

Transactional Persistence Engine
Documentation

# TO DO
In case of drop segment transform in delete all the create/update record operation in transaction for the relative segment
In case of recover make sure that none of the pages recovered are present in the free list
Implement key range iterator for the index
Implement multi version of the pages to be kept alive, for allow to read indexes in parallel to write.
Introduce some tracking and retain in memory of written pages to re-apply them in case of fsync failure.
Implement advanced caching algorithms
Manage shrink of file, think to improve the algorithm for release pages
Introduce swap pages on flush of configuration structures like allocator, journal and segments, for increase durability
Introduce a new type of "IntoPersyStructureId" that source from both PersyStructureId and &str, so the same api can be used with optimizedIds and not optimal &str

## Features

# Tests TO DO

## Multithread
manipolate record of segment while another thread drop the segment

## Allocation
Add test case for check if disk space is returned correctly after drop segment

## Scan Transactions
Test failure of scan of a segment created in another tx

# Code cleanup
check for in tests module refer and remove double implementation of CountDown

# Optimizations
Remove segment check in prepare-commit record locks