Introduce matrix_is_valid()

Does NOT support trailling white space. This might be problematic.
Make matrix_is_valid() support trailing whitespace

This was gonna be an issue one day or another.
Adjust matrix_is_valid() documentation
Final draft of new_matrix
Final versions of new_matrix(_safe)

I've yet to test this with a block GUI. Any remaining bugs will
surely show up there.
Rename Cmax and Rmax macros to all caps

CMAX and RMAX actualy look like macros and not like variables.
For the record, I didn't program this.
Reorder function placement

This is a code cleanup thing.
Assign parsed matrix to user's matrix
CHAR_BUFF_SIZE macro and matrix error handle hack

The recent changes in the matrix lib have made rt_block_io
blow up.

First, any matrix error in a .conf would make the block exit. This
is dramatic during Xenomai Lab operation. The code was using the
unsafe version of matrix_new, so any malformed string would call
exit(1).
Changing this to the safe version fixes the mysterious crashes,
but introduces a error handling issue. Right now the errors are
handled localy, which is a maintenance nightmare.

There are two solutions to this problem.
	1-Introduce a rt_block_io interface to matrix operations.
	  This is only a subpar maintenance dream instead of a full
	  blown nightmare.
	2-Make the mtrx lib use the ERROR/DEBUG macros. This is
	  great for maintenance, but makes mtrx dependant on
	  rt_block_io.

A tough call.

Secondly, the matrix lib is storing doubles with %12.6f precision.
For a 4x4 matrix, this makes for a string that overloaded every
buffer in rt_block_io. And the error handling wasn't particularly
graceful. To make this maintainable, I've made every single
char buf[] in the code default to a CHAR_BUFF_SIZE of 300.
I believe the tradeoff makes sense. Yes, it uses more memory,
but now the code is under control.
Use standard ERROR/DEBUG macros instead of exit(1)

Some of the matrix operations have error conditions which default
to exit(1). These need safe version, so I've marked these as TODO.

Also, I've copy pasted the macros instead of introducing a direct
dependency on rt_block_io. This is cheating a little bit.
Add missing semicolon
Fix subtle bug in RETERROR

Unlike the ERROR and DEBUG macros, RETERROR was in reality
multiple instructions in one. This was very error prone because

	if(func)
		RETERROR("");

Didn't work. Only

	if(func){
		RETERROR("");
	}

I changed the macro to include an enclosing {} pair, so now the
first example works as expected. There's code that should be
cleaned up now.
Use ERROR/DEBUG more pervasively

matrix_is_valid() is now matrix_is_invalid() to use the macros.
Take advantage of mtrx.c usage of ERROR/DEBUG

Error handling is no longer local, but integrated with mtrx.c
taking care of its own errors, on its side.
Clean up code using old RETERROR
Clearer documentation for new_matrix_safe
Move CHAR_BUFFER_SIZE and others from .c to .h
Use CHAR_BUFFER_SIZE instead of 50
Change matrix precison from %12.6 to %1.3

Changing this is very easy. Just those two lines and a recompile
and everyone should play along.
Fix #29 - Make template use an example Matrix

This fix took a million different changes. This is the final
result.