Check that only childen' applies are called

Forgetting to include children blocks in the self.children
list can potentially cause hard to spot bugs. That's why I think
it is reasonable to add the following description: if a brick
calls another brick's apply, the latter must be a child of the former.
The way I implement it is currently not thread-safe.
Exception handling for _last_brick_called
check_theano_variable to accept dtype prefix
Add LookupTable brick
A brick apply can call another apply of this brick
Wrapping to respect hierarchy

When a recurrent apply method is wrapped one has to define a wrapper
of initialization method and include it in the signature.
Refactoring of Readouts
PEP8
Softmax, lookup, updates handling
Fix bug in SoftmaxEmitter
More updates handling
Markov Chain generation case study
Some smart naming of inputs and outputs
`properties` to become a real attribute
cost to accept initial states
Validation support
Add tag.typ as an input and an output can have similar names.
Language model case study
Merge branch 'master' into bartrizar

Conflicts:
	blocks/bricks.py
	blocks/utils.py
Add missing documentation files