Enable to specify the "hard path" to device-tree for tests

Now the test that almost always fails on the desktop can be
redirected somewhere.
Enable valgrind for tests

To disable, just call it like:

  $ make run VALGRIND=
Add a simple stack implementation

It allows to stack any kind of data (uses void *). Every item is allocated
by malloc. The usage is simple but requires to check the return values
(because of the allocations). Few tests are included.

Example:

  struct stack *s = NULL; // empty stack

  if(stack_push(&s, data))
	die("failed to push")

  while(!stack_empty(&s))
    data = stack_pop(&s);
Add 'reg' into all device nodes

Every addressable device must have this entry.
[busio] Test error in bus_list
Backend procfs has been rewritten

The original implementation had few big problems:

 * the base address was read from the name of device (ethernet@81000000), it is
   better to use the 'reg' attribute
 * the name of a component was used from the identification (ethernet@81000000)
   by taking the first part before '@', that is bad, becase all the string is
   unique in the tree, but this doesn't apply for the first part (in fact, the
   older implementation added a suffix "-AB" to every instance where the name
   was not unique
 * the implementation was using fwt to traverse the directories and because of
   that all the tree was first parsed into the memory and then served to the
   client

The new implementation notes:

 * dirent API to access the /proc/device-tree directory
 * fixes the address parsing
 * the component's name is all the name string (ethernet@81000000)
 * the implementation is shorter
 * a device is recognized by checking whether a regular file 'reg'
   exists in its directory
 * it fails when passing a file as a device-tree (one of the tests);
   but this is unimportant...

Disadvantages:

 * the implementation overuses malloc and sometimes allocates the same
   thing many times (to be improved in the future?)
 * it allocates more short chunks of memory instead of using one big
   for many related items
 * the stack with paths is allocated on the heap now
Merge branch 'new-backend'

* new-backend:
  Backend procfs has been rewritten
  [busio] Test error in bus_list
  Add 'reg' into all device nodes
  Add a simple stack implementation
  Enable valgrind for tests
  Enable to specify the "hard path" to device-tree for tests