A block entity (previously named tile entity) is extra data associated with a block, beyond the block ID and 4 extra bits of data that every block has.
Usage
Block entities store additional information about certain blocks, with the type of information varying by block. In some cases, this information is used to create a more complex model, such as the book on an enchantment table. In other cases, it is used to store contents of an object.
Block entities can be moved by pistons.[Pocket Edition only]
List of block entities
These are the current blocks that hold block entities.
To store the offset of block, direction of movement, and ID (and data value, if applicable) of the moving block. (A moving block can't be stored as a block because it's not aligned to a grid cell.)