add tests for legacy url with unknown format & parameters

- add missing feature tests for legacy urls like /index.php?sort_order=desc
Only link sites in dashboard widgets, if login_url is present.

Fixes #651
Merge pull request #652 from magiclabs/fix/dashboard-sites

Only link sites in dashboard widgets, if login_url is present.
Replace CanCan with CanCanCan
Use full asset url for tinymce base path, if asset host is set.

Closes #596
Complete new README

Added much more useful information into the readme that should help to get started with Alchemy even better. Closes #632
Set positions on elements manually while ordering

We do not use acts_as_list methods anymore which saves database quaries. This change also ensures the correct position of the elements.
Fixes "publish page" specs
Updates the tinymce skin, so the editor still looks good w/o toolbar
allow all versions of simple forms '~> 3.0'

For my app, I need a newer version of simple forms to be compatible with
Bootstrap 3. I've tried out the admin backend, and it still seems to
work (since Alchemy uses its own simple form wrappers).
convert config.label_text from lambda to proc

That way, it can accept two as well as three arguments and does not
throw an error when updating. Copied from
http://github.com/plataformatec/simple_form/commit/c5cd96675ca413c5b9ea7f20bbe61a0410dbd59a
Merge pull request #660 from mamhoff/free-simple-forms

Free simple forms
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
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
Remove deprecated have(x) 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.