Merge tag 'release/v1.0.0' into development

Release v1.0.0

* tag 'release/v1.0.0': (22 commits)
  Remove 1.8 from the Ruby Travis builds
  Add a spec for the %% molecule
  Fix bug where a progress bar with an integrated percentage miscalculated the space it was taking up
  fix @terminal_width and bar_width calculation
  Fix more README typos
  Version Bump
  Replace @out.print with @out.write to work better in dumb terminal like Emacs' M-x shell.
  Document the smoothing attribute a little better.
  Rewrote smoothing stuff to something better.
  Offload handling of weird time values to format_time (isn't that its job?) ;-)
  Added "smoothing" attribute (default 0.9). It can be set to nil to use the old ETA code.
  Make time estimate a smoothed moving average
  allow to customize the #title_width
  removed trailing whitespace
  Detect whether the output device is a terminal, and use a simplified output strategy when it is not.
  Use 1.9 compatible require in test.
  Add tests for Timecop and Delorean time mocking
  Make Progressbar resistant to time mocking
  Automatically tag gem builds as Date.today
  Fix Version Bump
  ...
Add Rake to the Gemfile
Update .gitignore
Add a Rakefile
Merge branch 'hotfix/v1.0.1' into development

* hotfix/v1.0.1:
  Version Bump
  Add Ruby 1.8.7 back into Travis CI build
  Fixing string slice bug
Version Bump in Gemfile.lock
Add 'ruby-prof' to the project as a development gem
Extract the logic of setting the format string out into its own private method ProgressBar::Formatter#format_string=
When setting the format string, if it hasn't changed, we don't need to reparse it
Now that we're not reparsing the format string each time, we can save some cycles by memoizing the Format::Base#non_bar_molecules and #bar_molecules
Remove the Kernel#tap in Formatter#process and just use an instance variable instead
Move Formatter#process into Format::Base because it is much more concerned with the format
Limit the API of the Format.Base class by making #non_bar_molecules and #bar_molecules private
Now that we're memoizing Format::Base#bar_molecules, just use it to calculate how many bar molecules are left
Whitespace
Add a script for benchmarking
Merge branch 'refactoring/performance-tuning' into development

* refactoring/performance-tuning:
  Add a script for benchmarking
  Whitespace
  Now that we're memoizing Format::Base#bar_molecules, just use it to calculate how many bar molecules are left
  Limit the API of the Format.Base class by making #non_bar_molecules and #bar_molecules private
  Move Formatter#process into Format::Base because it is much more concerned with the format
  Remove the Kernel#tap in Formatter#process and just use an instance variable instead
  Now that we're not reparsing the format string each time, we can save some cycles by memoizing the Format::Base#non_bar_molecules and #bar_molecules
  When setting the format string, if it hasn't changed, we don't need to reparse it
  Extract the logic of setting the format string out into its own private method ProgressBar::Formatter#format_string=
  Add 'ruby-prof' to the project as a development gem
Move ruby-prof into the Gemfile so it is only loaded when it's MRI Ruby
Update development gems
Hashes are not ordered and therefore when looking for the time mocking method, we weren't selecting the proper one. Switched to an Array instead.