Add first experimental version of Repository class

The class net.secloud.core.Repository is purposed for handling the
algorithmic part.
Rename ObjectDatabase to RepositoryDatabase

Old names:

* net.secloud.core.ObjectDatabase
* net.secloud.core.DirectoryObjectDatabase

New names:

* net.secloud.core.RepositoryDatabase
* net.secloud.core.DirectoryRepositoryDatabase
Merge branch 'master' into dev
Move object classes to net.secloud.core.objects

The most important involved classes are:

* net.secloud.core.ObjectId
* net.secloud.core.Blob
* net.secloud.core.Tree
* net.secloud.core.Commit

Note, that some other classes moved into the new package, too.
Encapsulate serialization objects

The serialization objects are now package private. To access the
(de)seralization methods, one can now use the package object which
exposes them to the public scope. For example:

The object net.secloud.core.objects.Blob is now private and called
net.secloud.core.objects.BlobSerializer. Instead one can call
net.secloud.core.objects.writeBlob(...) and
net.secloud.core.objects.readBlob(...) to access the methods.

The same principle has been applied to trees and commits.
Merge branch 'tmp-restructure' into dev
Merge branch 'master' into dev
Refactor Commit and add parents encryption keys

net.secloud.core.objects.Commit fields treeId and treeKey have been
replaced by the field tree of type TreeEntry. This allows easier
recursion start in later algorithms.

net.secloud.core.objects.Commit field parentIds has been replaces by the
field parents of type List[net.secloud.core.objects.CommitParent]. The
type CommitParent bundles the parents ID and the parents encryption key.
Add RepositoryWorkingDir trait

Abstracts the working dir. Will have default implementation with
DirectoryRepositoryWorkingDir.
Add WorkingDirElementReader,WorkingDirElementWriter
Make Repository use new RepositoryWorkingDir trait
Outsource object signing and validating

The read and write methods for Blob, Tree and Commit no more sign or
validate the byte stream on their own. This can now be wrapped
additionally with the net.secloud.core.objects.signObject and
net.secloud.core.objects.validateObject methods.
Add BlockInputStream.skipToEnd method

Now the net.secloud.core.utils.BlockInputStream does not read a block to
the end automatically anymore and instead the remaining block content
can be skip manually.
Detach reading and writing of Blob content
Renaming for cryptographics classes

Rename the following classes/methods in net.secloud.core.security
namespace:

* SymmetricEncryptionAlgorithm -> SymmetricAlgorithm
  * .generateKey() -> .generateParameters()
* SymmetricEncryptionMode -> SymmetricMode
* SymmetricEncryptionParameters -> SymmetricParams
Reorganize net.secloud.core.security package

Split into more files and remove CryptographicAlgorithms object. All
the inner content lives now in the net.secloud.core.security package
directly.
Merge branch 'master' into dev