Better type consistency check for LayerOutput
Created by: emailweixu
Currently, trainer_config_helper/layers.py does a very loose of job of enforcing consistency of input arguments for layers.
We should add more type information such as dimensions, data types(e.g. Integer, DenseVector, etc), sequence info(e.g. sequence, hierachical sequence) and have an mechanism to enforce the type consistency.