Merge `lib_queue.F90.erb' and `lib_stack.F90.erb' into `lib_fortran'

This change will make it easy to define generic procedures for multiple derived types.
Modify dependencies to reduce time to compile
Add test with gcc-snapshot
Fix some test cases to prevent enormous fail messages
Rename `tmpNodeHolder' -> `removedNode'
Fix comment
Add `BinaryTreeMap'
Use reflection
Merge branch 'fb/binary_tree_map' into fb/one_module
Add `TESTABLE_RAISE' and its companions
Use `TESTABLE_ASSERT'
Merge branch 'fb/testable_raise' into fb/one_module
Initialize isRaised to be .false. within `TESTABLE_RAISE_IF'
Reduce amount of code
Add build status image to the `README.md'
Delete `new_unit' since gfortran 4.5 and later supports newunit
Use nweunit
Add tests for `read_array' and `write_array'
Add `check_bound' macro
Change arguments ordering of `ALL_OF' macro