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.