Squashed 'src/rocksdb2/' content from commit 5e08681

git-subtree-dir: src/rocksdb2
git-subtree-split: 5e0868147d2d60428a3b9339a15e393149be5fa3
Rename rocksdb/ to rocksdb2/ to ignore git subtree mistakes

A number of commits in the rippled repository are missing, which causes git
subtree split to fail. This does not manifest as an issue with some older clones
due to the repositories still containing the commits, though running git gc
--prune=all will cause those commits to vanish as they are not reachable through
any refs.

git subtree is used for splitting out existing subdirectories into new
repositories with our local changes applied on top as new commits. To build this
new repository, git-subtree iterates forwards through the history of a specific
path (i.e. src/rocksdb), looking for any and all commits that modify it.

When a subtree is initially added with --squash, the commit messages contain
metadata that is used by git subtree split to find original history.

There are currently (at least!) two commits that are not reachable by rippled's
existing refs, meaning that new clones cannot use git subtree split to push
changes upstream: 78b8a7d and 224932d. They were introduced by Vinnie in f86d9fd
and 7bfb4a9. These two missing commits point to revisions of rocksdb that were
rebased out of existence after the initial subtree add.

This commit renames rocksdb/ to rocksdb2/ as a temporary solution to prevent git
subtree from barfing when splitting.

This is a merge commit of '9eb82a5d6e365cfff756b215367e8a928fdd9f38' as 'src/rocksdb2'
Changes to support unity build:
* Script for building the unity.cc file via Makefile
* Unity executable Makefile target for testing builds
* Source code changes to fix compilation of unity build