Fixes user factories

The roles wasn't arrays
Use pry-byebug for navigation features in pry sessions
Explicitly authorize! PagesController#show.

Since we load the page in a before filter we need to explicilty authorize! the show action of PagesController. CanCan is not able to handle this otherwise. Also adds specs for the restricted pages feature.

Fixes #606
Adds french Tinymce locale.
Fixes updating of page urlname path.

The logic of the Page#set_urlname method does not take the root page into account. So if one updates a language root page, then the urlname would include the root page urlname ('root').

This commit also includes an addition to the page info view. It now includes the complete urlname path.
Allow Kaminari version greater then 0.15

Fixes #617
Fixes essence_name in essence generator

Essence name was all snakecase, but we need it underscored for template names and css class names.
Convert specs to RSpec 2.99.0 syntax with Transpec

This conversion is done by Transpec 2.3.1 with the following command:
    transpec

* 664 conversions
    from: obj.should
      to: expect(obj).to

* 386 conversions
    from: == expected
      to: eq(expected)

* 284 conversions
    from: it { should ... }
      to: it { is_expected.to ... }

* 262 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 201 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 81 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 29 conversions
    from: be_true
      to: be_truthy

* 26 conversions
    from: it { should_not ... }
      to: it { is_expected.not_to ... }

* 21 conversions
    from: be_false
      to: be_falsey

* 21 conversions
    from: describe 'some controller' { }
      to: describe 'some controller', :type => :controller { }

* 20 conversions
    from: describe 'some model' { }
      to: describe 'some model', :type => :model { }

* 18 conversions
    from: its(:attr) { }
      to: describe '#attr' do subject { super().attr }; it { } end

* 17 conversions
    from: Klass.any_instance.stub(:message)
      to: allow_any_instance_of(Klass).to receive(:message)

* 16 conversions
    from: describe 'some helper' { }
      to: describe 'some helper', :type => :helper { }

* 15 conversions
    from: describe 'some feature' { }
      to: describe 'some feature', :type => :feature { }

* 10 conversions
    from: collection.should have(n).items
      to: expect(collection.size).to eq(n)

* 9 conversions
    from: describe 'some view' { }
      to: describe 'some view', :type => :view { }

* 6 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)

* 5 conversions
    from: =~ /pattern/
      to: match(/pattern/)

* 4 conversions
    from: obj.should_not_receive(:message)
      to: expect(obj).not_to receive(:message)

* 1 conversion
    from: Klass.any_instance.should_not_receive(:message)
      to: expect_any_instance_of(Klass).not_to receive(:message)

* 1 conversion
    from: Klass.any_instance.unstub(:message)
      to: allow_any_instance_of(Klass).to receive(:message).and_call_original

* 1 conversion
    from: before { example }
      to: before { |example| example }

* 1 conversion
    from: def helper_method example; end
      to: def helper_method RSpec.current_example; end

* 1 conversion
    from: describe 'some mailer' { }
      to: describe 'some mailer', :type => :mailer { }

* 1 conversion
    from: describe 'some routing' { }
      to: describe 'some routing', :type => :routing { }

* 1 conversion
    from: expect { }.not_to raise_error(SpecificErrorClass)
      to: expect { }.not_to raise_error

* 1 conversion
    from: expect(collection).to have(n).items
      to: expect(collection.size).to eq(n)

* 1 conversion
    from: obj.should_receive(:message).any_number_of_times
      to: allow(obj).to receive(:message)

* 1 conversion
    from: obj.stub(:message).and_return { value }
      to: obj.stub(:message) { value }

For more details: https://github.com/yujinakayama/transpec#supported-conversions
fix expect(expect(x).to).to to only one expect
Convert specs to RSpec 2.99.0 syntax with Transpec

This conversion is done by Transpec 2.3.1 with the following command:
    transpec -f lib/alchemy/test_support/essence_shared_examples.rb

* 6 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 4 conversions
    from: it { should ... }
      to: it { is_expected.to ... }

* 1 conversion
    from: be_true
      to: be_truthy

* 1 conversion
    from: obj.should_not
      to: expect(obj).not_to

For more details: https://github.com/yujinakayama/transpec#supported-conversions
Infer spec type from file location

This gets rid of deprecation errors for every single test, even though for most
tests, transpec has already specified the spec type. It'll be another task to
fix these.
Reference :language_root before trying to create a :public_page

Otherwise, AR barfs because of the language_root page being already
there.
add RSpec::ActiveModel::Mocks
Do what RSpec said. Exactly. (Remove deprecated have(x) matcher)

From the error message:
```
`expect(record).to have(1).error_on("lastname")` is deprecated.
Use the rspec-collection_matchers gem or replace your expectation with something like

    record.valid?
    expect(record.errors["lastname"].size).to eq(1)

 instead. Called from ...spec/models/message_spec.rb:28:in `block (5 levels) in <module:Alchemy>'.
```
remove two deprecation errors by removing have() matcher
Raise deprecation warnings as errors

Here I turned on the evil "raise deprecation warnings as errors" setting.
Now the Alchemy test suite returns 8 errors which I do not know how to fix.
I hope though that this is a good starting point for transitioning to RSpec 3.
convert the transformation examples to rspec 3
Separate two expectations to two tests

Somehow, the first expectation does not lead to the the xhr request
actually being run, which results in the second expectation failing.

The first one is, I think, a non-test. I included a comment.
fix ElementsBlockHelper spec by putting Class names into a string