Fix for issues with Rainbow.color() called multiple times, and using Rainbow without nested <code> element

I found two issues with this plugin:

1. Rainbow automatically calls `Rainbow.color()` on load/domready. If it is explicitly called by the developer it errors since there is no longer a `code` element found as it's been replaced by the `table`. This typically isn't a problem, but the `code` element that Rainbow holds in memory no longer has a `parentNode` so when attempting to inject the `table` there is an `NPE` when referencing `block.parentNode`.
2. Rainbow does allow using a `pre` directly without a nested `code`. To accommodate for this a check is needed to see if `block` is a `pre`. If so using `block.parentNode` is not necessary. In fact this would be dangerous as it would clear `innerHTML` of `body` or some other node.