This revision adds the support to the Twitter Bootstrap UI, including
the templates and scaffolding. There were 3 plugins installed:

1. twitter-bootstrap: for bootstrap.
2. twitter-bootstrap-scaffolding for scaffolding models.
3. fields: for scaffolding models.

The Fluid template
http://twitter.github.com/bootstrap/examples/fluid.html was added into
the main layout and still needs adjustments. The test is in the
controller/action /key/index. See index.gsp created for details.

* ScaffoldingResources.groovy
* taglib/twitter/**/*
* views/_fields/**/*
- Added from the plugin Bootstrap Scaffolding and Fields

* views/key/index.gsp
- Adding the initial page with only the header and retrieving a variable
from the controller.

* views/layouts/bootstrap.gsp
* src/templates/**/*
* web-app/css/scaffolding.gsp
* grails-app/views/index.gsp
- Added by the Bootstrap Scaffolding pluging.

* application.properties
- Adding the plugins 
- Don't know why svn plugin is installed.

* Config.groovy
- Adding configurations for the Bootstrap plugin

* KeyController.groovy
- Changing the action index to return a variable instead of rendering.

* layouts/main.gsp
- Replacing with the source code from the Fluid template example from
http://twitter.github.com/bootstrap/examples/fluid.html.

Adding the ignore.
This revision integrates the UI for the random keys generator, adding
supporting css for the view.

* random.gsp
- Adding the view to the random keys generator.
- It uses bootstrap and Google's Prettify to show <pre> tags with line
numbers.

* prettify.css
* prettify.js
- The pretify code from http://code.google.com/p/google-code-prettify/

* index.gsp
* info.gsp
- Renamed the index page to info, that renders the Twitter Bootstrap
page to see all the controllers.

* ApplicationResources.groovy
- Adding the prettify module.

* KeyController.groovy
- Adding the rsa object for the view.

* key/index.gsp
- Adding the algorithm explanation in the key main page.

* layouts/main.gsp
- Adding the side-bar links.

* KeyControllerTests.groovy
- Just deleting something not used.
This revision adds a tag library "<decodr:rsaKey />" to print the RSA
keys.

<decodr:rsaKey key="${rsaKeyInstance}" format="link" />

* key: instance of RsaPrivateKey or RsaPublicKey
* [format]: prints the link info without it, and the regular output
with.

Changes

* Just adding reformatting for the scaffolding tag libs.
* random.gsp
- Adding the tags replacing the old texts.
This revision fixes the link in the buttons to use the parameters map
built in the controller for the keys.

* KeyController.groovy
- Creating maps with the private and public keys to be used in links.

* random.gsp
- Removing the old tags that format the output as parameters.
- Adding the regular params attribute in the link.
Just fixing the main menu items.
This revision adds the UI for the intro page of the Encoding feature.

* index.gsp
- Adding the initial page to show the keys, and submit the form if they
are available in the request.

* EncoderController.groovy
- Fixing the index() action to not render anything.
- Fixing the way the parameters are retrieved from the form.

* DecodrTagLib.groovy
- Refactoring the implementation of the tags to receive the public keys
parameters "d" and "e".

* random.gsp
- Just reformatting.

* main.gsp
- Refactoring the main menu to have the needed options.
This revision implements the UI for the encoding of messages. There is
still a lot to be worked on, but the basic feature is implemented. The
calculation is displayed in the same page, as the service to encode a
message is a JSON output.

* EncoderController.groovy
- The validation of the parameters is added. In case it is not valid,
the JSON error document is returned.
- TODO: Validation of the number values.
- The return value of the page is now a JSON object with the values of
the computation.

* encoder/index.gsp
- Adding the modules "jquery" and "google's prettify" for the output of
the log.
- Registering a call to the #submitComputation button when it is
clicked.
- Adding the method "loadLogs()" to load the computation logs from the
server. It validates the input, adds error messages, etc.
- Adding the method makeHTMLLogEntry() to build each line of the logs
entry.
- Adding the flash.error message in case there is any error (TO BE
USED).
- Showing the button to encode messages only when a public key set has
been submitted.
- Showing the current public key in case it submitted.
- Showing the form to encode a message in case the public keys set were
submitted.
- Adding the div Encoding a message to display the results.

* main.gsp
- Fixing the order of the title and the layoutResources in the layout
"main".
This revision adds the initial implementation of the form to submit the
values to decode a message from the encoder page. In addition, it adds
the JQuery plugin to copy-and-paste to the clipboard. HOwever, it worked
once (maybe the flash lib crashed).

* js/jquery/ZeroClipboard.swf
* js/jquery/jquery.zclip.js
- Adding the JQuery component from http://www.steamdev.com/zclip/

* ApplicationResources.groovy
- Adding the jqueryClipboard module as the above-mentioned script.

* EncoderController.groovy
- Just a few refactoring to make sure it is submitting the correct
values.
- Returning the encodedMessage in the result JSON in the encode action.

* encoder/index.gsp
- Adding the jqueryClipboard module, although it has been commented in
the code as it worked only once.
- Renamed the submitComputation button
- Added a listener event to the submitDecodeButton, to appear only when
there's an encoded message in the form.
- Hiding the encoding message area.
- Commented code for the clipboard.
- Adding a selection to the encodedMessage textarea so it is easier to
copy.
- Adding the encoded message to the text area, showing it only when the
encode operation works.
- Adding the method submitDecoderForm() to submit the decoder form.
- Adding the encodedMessageArea span to be displayed only when the user
has encoded a message.
This revision implements the Decoder UI. In order to use it, the user
must:
1. Come from the Generate Random Keys page. 
- Only needs to receive a message.

2. Come directly. Needs to provide the COMPLETE STRING in the keys boxes
and paste in the input.
- Provide the encoded message as well.

* decoder/index.gsp
- Initial version working as described above.

* DecoderController.groovy
- Removing the index() action's render.
- Verifying if all the parameters were submitted before encoding.
- Fixing the retrieval of all parameters.
- Replacing the older render with the JSON output in the action
"decode()".

* encoder/index.gsp
- Adding the title 
- TODO: the params[] are built with the rendered value. In the future,
this will break if the forms are incorporated.

* key/index.gsp
- Just adding the title.

* layouts/main.gsp
- Attempt to fix the header to merge the titles.
- Fixing the left navigation to show the correct highlights.
This revision just fixes a few of the flow of the functionality. IT IS
WORKABLE...

* decoder/index.gsp
- Print the individual keys if they were provided by the requrest.
- Populate the hidden forms if possible.

* encoder/index.gsp
- Adding the function keyPress to capture the paste of the public key.
- Adding the code to enable the copy and paste effect by adding a
field to the public key.
- Getting the value from the form instead of when they are loaded.
- The decoder form now takes the user to the decoder page.