fixing shortcode functions to return data rather than echo

By returning the data from the shortcode function instead of echo directly, the contents can be processed inline properly.

Currently, if i specify the following in a post:  
```<div class="hijri_date">[en_hijri_date]</div>```
the resulting output is
```27 Shaaban 1435<div class="hijri_date"></div>```
since processing the shortcode echos the content rather than returning it so that it can be substituted in the original text.

With the changes here, the output becomes
```<div class="hijri_date">27 Shaaban 1435</div>```
as expected.

Fix is also applied to the calendar shortcode using output buffering to trap the echos and return the markup.