Common subsystem reorganization.

Now the "common" subsystem has a n_init_common() function that calls any
subsystem in need of initialization inside the "common" banner.

I also created the common/common.h header so that any user of the common
library must only include that one. This header takes care of only
exposing what should be exposed for external users.
New common asserts for tests.

Two new test asserts were created: ASSERT_EOK(NError* error) and
ASSERT_EQ_I64(int64_t, int64_t).

ASSERT_EOK takes the error argument and checks that it is an "Ok" status
-- that is, an error of type net.xndk.nuvm.erros.Ok

ASSERT_EQ_I64 takes two 64 bits integers and checks that both are equal.

Both assertions print suitable messages upon failure.
Reworking test assertions.

Creating assertions for tests was becoming too much of a chore when I
started to develop common assertions (like 'equals' for int64_t, etc).
Also, management of resources (mainly, disposing of resources consumed
during the execution of the test in case of failure) was impossible in
some cases.

A big refactor went into making these things easier and possible, which
lead me to the separation of the assertions into a generic ASSERT_CHECK
macro, that runs a check and returns its success status and error
message, if any, and a bunch of checkers, such as CK_EQ_I64 (checks if
two int64_t are equal) and others (found in test-suite.{h,c}.
Added a few more tests for the asm/reader suite.
Better interface between asserts and checks.

The new way of calling assertions allows for future expansion of the
atest library to support standard checks that can be used in assertions
or "ordinary checks" that don't halt execution of code when they fail
but still fail the test if they do.