Exposing the tuna object even if define detected + check for define.amd

Even if a project uses require.js or another amd loader (and, so, define is a function in the code), it doesn't mean it wants to load *every* library using amd. Maybe one wants to use amd only to load certain plugins and load static libraries with the old script-in-the-head method.

Since these mixed-approach web application exist (namely, [my current KievII Host angularjs branch](https://github.com/janesconference/KievIIHost/tree/feature/angular) does this : ), I propose to always expose the Tuna object and return the module only if define is present and a function (checking define.amd in the process, since define is quite a generic function name). This is what jQuery does, anyway.