possible to specify options via data- attributes

Hi, it seems that jquery.find returns an array instead of a single element. This prevented textillate from reading the options specified in the \<li\> elements.

This patch fixes that error. Also, it converts "true"/"false" to true/false in the case of data-in-shuffle etc., and handles situation where data-in-delayScale is forcibly changed to lower case. This makes it possible to specify those options as well.
It turned out that deep copy is really necessary. If the objects were not recursively copied, the `in` field of results from `getData` would completely overwrite the `in` field of `base.options`, even if they contained complementary data. So `{out: {a: 1}, in: {a: 1, b: 2}} + {in: {c: 3}}` would become `{out: {a: 1}, in: {c: 3}}`. This is clearly undesirable since the base options should be preserved. This applies to other fields e.g. `out` as well.

The problem with `.find` is that if there were no element matching the given selector, it would return an empty array, in which case `$elem[0]` would be `undefined`, and `node.attribute` would throw an exception. So I wrote that as a precautionary measure.